PHP preg_match с рабочим регулярным выражением [дубликат]
This question already has an answer here:
Validate date format in php 7 answersfunction validateDate( $date )
{
echo $date;
//2012-08-24 20:30:00
if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
{
return true;
}
else
{
return false;
}
}
Это всегда возвращает ложь. Я использовал единственный инструмент для создания регулярных выражений, и там он работал нормально. Проблемы начались, когда я добавил & quot; / & quot; к регулярному выражению Почему-то PHP, кажется, требует этого, но я не знаю почему, и я не знаю, почему это нарушает мое регулярное выражение.
Он должен вернуть TRUE для чего-то. как & quot; 2012-08-24 20: 30: 00 & quot; и FALSE для & quot; asdf2012-08-24 20: 30: 00asdf & quot; или что-нибудь, что не соответствует моему регулярному выражению
Заранее спасибо!
-----------------------РЕДАКТИРОВАТЬ Спасибо за все ваши ответы!
Как отмечали некоторые пользователи, моя функция возвращает значение true для даты выборки "2012-08-24 20: 30: 00". Однако это происходит только в том случае, если я вручную установил $ date = '2012-08-24 20: 30: 00'. Если я вызываю функцию в другом месте моего кода с точно такой же строкой, она возвращает false. Кто-нибудь знает почему?
----------------------- EDIT2
Да, извините за трату вашего времени, это был фактически какой-то пробел, который был добавлен в строку. использование trim () в моей дате перед вызовом моей функции теперь дает правильный результат.
Спасибо всем!