13

有谁知道是否有内置或快速函数来检查字符串是否为 MySQL 日期时间格式?这是一个例子:

2038-01-19 03:14:07

http://dev.mysql.com/doc/refman/5.0/en/datetime.html

4

2 回答 2

14

你可以试试看DateTime::createFromFormat('Y-m-d H:i:s', '2038-01-19 03:14:07')它是否返回false。http://www.php.net/manual/en/datetime.createfromformat.php

于 2013-04-07T03:54:22.487 回答
12

我喜欢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复制的

于 2015-12-02T17:18:31.843 回答