php регулярка для даты вида Y.m.d H:i

Помогите, пожалуйста, написать регулярку для даты вида Y.m.d H:i. Еще как-нибудь нужно учесть, что дата введенная должна быть после сегодняшнего дня. Возможно, это тоже можно проверить в регулярном выражении?


Ответы (1 шт):

Автор решения: Romualds Cirsis
return (bool)preg_match("/^[0-9]{4}\.[0-1][0-2]\.[0-3][0-9] [0-2][0-9]:[0-5][0-9]$/",$date);

Но она не проверит на правильность даты, только на формат. Дополнять до правильности надо еще через или и группы. И то есть риск что-то пропустить.

Я бы использовал другой механизм, например DateTime:

$dt = DateTime::createFromFormat("Y-m-d", $date);
return $dt !== false && !array_sum($dt::getLastErrors());

Этот подход с легкостью и проверит свежесть даты.

→ Ссылка