PHP preg_match с рабочим регулярным выражением [дубликат]
На этот вопрос уже есть ответ здесь:
Подтвердите формат даты в php 7 ответовfunction 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;
}
}
Это всегда возвращает ложь. Я использовал единственный инструмент для создания регулярных выражений, и там он работал нормально. Проблемы начались, когда я добавил "/" к регулярному выражению Почему-то PHP, кажется, требует этого, но я не знаю почему, и я не знаю, почему это нарушает мое регулярное выражение.
Он должен вернуть TRUE для чего-то. лайк "2012-08-24 20:30:00 и ЛОЖЬ для "asdf2012-08-24 20: 30: 00asdf " или что-нибудь, что не соответствует моему регулярному выражению
Заранее спасибо!
----------------------- РЕДАКТИРОВАТЬ Спасибо за все ваши ответы!
Как отметили некоторые пользователи, моя функция возвращает true для даты выборки "2012-08-24 20:30:00, Однако это происходит только в том случае, если я вручную установил $ date = '2012-08-24 20:30:00 ', Если я вызываю функцию в другом месте моего кода с точно такой же строкой, она возвращает false. Кто-нибудь знает почему?
----------------------- EDIT2
Да, извините за трату вашего времени, это был фактически какой-то пробел, который был добавлен в строку. использование trim () в моей дате перед вызовом моей функции теперь дает правильный результат.
Спасибо всем!