[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Стара как мир - проверка даты!
iles
Всем добрый день.
вообщем проблема над которой бьюсь неделю.

на страницу через GET приходит параметр date (тип DATE) в формате dd.mm.yyyy hh:mm:ss (21.12.2006 16:14:00)
Нужно проверить его валидность (что пришла дата, а не набор символов).

Проверил все варианты (какие нашел) с сайта www.php.net, не прокатил не один.
Прошу помощи кодом.

Заранее благодарен.



Спустя 1 час, 27 минут, 25 секунд (15.08.2006 - 16:32) vasa_c написал(а):
preg_match( '/[0-9]{2}.[0-9]{2}.[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]/', $date )
?

А лучше передавай в unix-timestamp.

Спустя 58 минут, 13 секунд (15.08.2006 - 17:30) iles написал(а):
Спасибо.
Еще вопрос по регулярным

если мне нужно проверить значение переменной, которая может принимать значения:

302256
30565p

то есть могут быть все 6 символов цифрами, а может 5 символов цифры, а 6-й - буквой

В этом случае как мне построить регулярку??

Спустя 20 минут, 53 секунды (15.08.2006 - 17:51) iles написал(а):
Разобрался
!preg_match("/[0-9]{5}w/", $_GET["id"]

теперь другая проблема
я знаю что переменная должна быть из цифр, но я не знаю ее длины! (может быть 12, а может 158946423)
как в этом случае построить регулярку??

Спустя 11 минут, 54 секунды (15.08.2006 - 18:03) vasa_c написал(а):
[0-9]+
дальше в мануал

Спустя 51 секунда (15.08.2006 - 18:04) vasa_c написал(а):
Да, и это, все-таки правильно:
/^[0-9]{2}.[0-9]{2}.[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/

Спустя 13 минут, 19 секунд (15.08.2006 - 18:17) iles написал(а):
QUOTE
Да, и это, все-таки правильно:
/^[0-9]{2}.[0-9]{2}.[0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/

Я так и сделал.
По стальному спасибо.
с регулярками встречаюсь впервые.
но вроде уже понимаю что к чему (на основе ответов + общий анализ+ учимся на ошибках)

Спасибо за помощь.

Спустя 2 года, 5 месяцев, 23 дня, 15 часов, 48 минут, 50 секунд (11.02.2009 - 11:06) http://pochemy.net написал(а):
Наткнулся на этот форум, искал как дату проверить. Но мне требовалось дргая проверка, на првильность даты ну например чтобы 30 февраля небыло. Не нашел, может плохо искал. В итоге сам придумал) вот пишу пример:

$d=28;
$m=2;
$Y=2002;

$sd=mktime(0, 0, 0, $m,$d,$Y);

if ((date("n",$sd)==$m) and (date("j",$sd)==$d) and (date("Y",$sd)==$Y))
{print "ok";}
else
{print "neok";};
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.