Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > проверить, находится ли дата


Автор: Splendid 12.11.2007, 15:32
Есть форма, которую заполняет пользователь, выбирая предложенные значения. Но несмотря на то, что сам он ничего не вводит (ручками), надо проверить перед подставлением в запрос - та ли переменная пришла.
Вопрос : как понять, что пришла дата в формате 2001-01-01??

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

Автор: webevt 12.11.2007, 15:54
Цитата(Splendid @  12.11.2007,  15:32 Найти цитируемый пост)
как понять, что пришла дата в формате 2001-01-01??

Код

if ( preg_match ( "/\d{4}\-\d{2}\-\d{2}/", $date ) )
{
  // дата верная
}



Цитата(Splendid @  12.11.2007,  15:32 Найти цитируемый пост)
как понять, что пришла строка

А зачем это проверять? Что еще может прийти?)) В названии фирм могут быть и цифры и буквы и знаки..все что угодно smile

Автор: Наставник 12.11.2007, 15:58
Splendid, должно помочь

Код

if(preg_match("/\d{4}-\d{2}-\d{2}/", $datetime))
{
    // выполняется код, если дата соотвествует формату YYYY-MM-DD/
}



Опередил-с), webevt

Автор: Splendid 12.11.2007, 15:59
webevt, спасибоsmile

Автор: Splendid 12.11.2007, 16:15
Наставник, спасибо!smile

Автор: SelenIT 13.11.2007, 01:19
Красивый вариант, некогда подсмотренный на phpclub'е (каюсь, забыл автора):
Код

if($datetime === date('Y-m-d', strtotime($datetime)))
{
    // выполняется код, если введена корректная дата в формате YYYY-MM-DD в диапазоне 1970-2037/
}

Автор: Splendid 13.11.2007, 15:33
SelenIT, спасибоsmile

Автор: Splendid 20.11.2007, 12:38
SelenIT

// выполняется код, если введена корректная дата в формате YYYY-MM-DD в диапазоне 1970-2037/

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)