private function checkDateMatch($dateStr, $checkFormat = 'YmdHis')
{
$unixTime_1 = strtotime($dateStr);
if (!is_numeric($unixTime_1)) return false; //如果不是数字格式,则直接返回
$checkDate = date($checkFormat, $unixTime_1);
$unixTime_2 = strtotime($checkDate);
if ($unixTime_1 == $unixTime_2) {
return true;
} else {
return false;
}
}
参考资料:https://www.php.cn/php-weizijiaocheng-381322.html
不过以上的方法现在看来是不严谨的,比如
1,2012-03-00 或 2012-02-31 这种格式的日期也会返回 true
2,2022-02-01 这种的去匹配 Y-m 也是返回 true
后面又找到一种方法,新测是规避了以上两种情况:
function checkDatetimeFormat(string $format = 'M d, Y', $datetime): bool
{
return DateTime::createFromFormat($format, $datetime) !== false;
}