Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: умная дата

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: регулярка
LEONeso
Отправлено: 04 Ноября, 2010 - 21:45:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Здравствуйте, помогите доработать регулярку.

имею:
PHP:
скопировать код в буфер обмена
  1. $date=preg_replace('/(\d{2}).(\d{2}).(\d{2,4})/','\\1.\\2.\\3',$date);


работа кода:
заменяет полученную строку на ДД.ММ.ГГГГ

требуется:
если год стостоит из 2-х чисел, чтоб вставил 19 в начале года.

пример:
получаем строку 08.10.87
преобразовываем её 08.10.1987
где точки - это естественно любой символ

(Отредактировано автором: 04 Ноября, 2010 - 23:06:14)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Саныч Модератор
Отправлено: 04 Ноября, 2010 - 23:26:30
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




PHP:
скопировать код в буфер обмена
  1. $date = preg_replace('/((?:\d{2}\.){2}\.)(\d{2})/',"\${1}19\$2",$date);


з.ы. А что если год к примеру 01? Нужно 2001 или все же 1901?

(Отредактировано автором: 04 Ноября, 2010 - 23:28:16)



-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
LEONeso
Отправлено: 04 Ноября, 2010 - 23:48:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




верное предположение, но пока не думал о том как это вообще делается.
и верность даты то же не проверяется, думаю это очень громоздкий код.

просто есть выбор или дата целиком или дата целиком без полного года.

даты вообще ужас, а календарь - это долго и не юзабельно.

(Отредактировано автором: 04 Ноября, 2010 - 23:49:21)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Nu3oN
Отправлено: 04 Ноября, 2010 - 23:50:33
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




если я правильно понял использование сего решения, то лучше было бы юзать time()
в дальнейшем можно выполнять более гибкие операции со временем без заморочек


-----
‮Я бы изменил мир, но бог не дает исходники!
 
 Top
LEONeso
Отправлено: 04 Ноября, 2010 - 23:57:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




к стати, есть здравый диапазон чисел, типа года 00-30 есть 2000-2030 и 31-99 есть 1931-1999

1.1.02 = 01.01.2002

ведь это можно описать в регулярке, только регулярка будет очень огромной?

Дело в обычном input-text и возможностью вбить 10 символов =) я же заморочился с правильностью ввода так, чтоб правка была автоматизированная.

Юзер может вбить:
18.04.1975
18041975
180475
18475
18,4,75
18/4/1975 и т.п.

выше упомянутая регулярка работает только в ДД.ММ.ГГГГ, где точки, любой символ.

(Отредактировано автором: 05 Ноября, 2010 - 00:02:00)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
SAD
Отправлено: 05 Ноября, 2010 - 01:07:18
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




а не проще ли повесить маску на input??
 
 Top
LEONeso
Отправлено: 05 Ноября, 2010 - 03:04:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




маску? Однако
(Добавление)
нашел некую статью
ссылка на статью


жаль не знаю как связать её с моей функцией
PHP:
скопировать код в буфер обмена
  1. function focus ($key) {$focus="onfocus=\"this.value=='".$key."' ? this.value='' :'' ;\" onblur=\"this.value=='' ? this.value='".$key."' :'' ;\""; return $focus;}

(Отредактировано автором: 05 Ноября, 2010 - 05:42:54)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
SAD
Отправлено: 05 Ноября, 2010 - 07:48:50
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




 
 Top
LEONeso
Отправлено: 05 Ноября, 2010 - 10:34:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




ни слова не понял Не понял и даже намёка не нашел, видать это надо знать язык, чтоб описать совместную работу событий


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB