Ответ 1
Вы можете попробовать DateTime::createFromFormat('Y-m-d H:i:s', '2038-01-19 03:14:07')
и посмотреть, возвращает ли он значение false. http://www.php.net/manual/en/datetime.createfromformat.php
Кто-нибудь знает, есть ли встроенная или быстрая функция, чтобы проверить, является ли строка форматом даты и времени MySQL? Вот пример:
2038-01-19 03:14:07
http://dev.mysql.com/doc/refman/5.0/en/datetime.html
Вы можете попробовать DateTime::createFromFormat('Y-m-d H:i:s', '2038-01-19 03:14:07')
и посмотреть, возвращает ли он значение false. http://www.php.net/manual/en/datetime.createfromformat.php
Мне понравился ответ epicdev, однако класс, похоже, только подтверждает формат, дата, как 2015-18-39, по-прежнему действительна для него и преобразуется в 2016-07-09 вместо того, чтобы отклонять недействительный день/месяц Небольшое изменение в нем состоит в том, чтобы дважды проверить, что обработанная дата по-прежнему совпадает с введенной датой.
предложенная glavic в gmail dot com на документации php.net
function validateDate($date, $format = 'Y-m-d H:i:s')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
Функция была скопирована из этого или php.net