1. private function checkDateMatch($dateStr, $checkFormat = 'YmdHis')
    2. {
    3. $unixTime_1 = strtotime($dateStr);
    4. if (!is_numeric($unixTime_1)) return false; //如果不是数字格式,则直接返回
    5. $checkDate = date($checkFormat, $unixTime_1);
    6. $unixTime_2 = strtotime($checkDate);
    7. if ($unixTime_1 == $unixTime_2) {
    8. return true;
    9. } else {
    10. return false;
    11. }
    12. }

    参考资料:https://www.php.cn/php-weizijiaocheng-381322.html


    不过以上的方法现在看来是不严谨的,比如
    1,2012-03-00 或 2012-02-31 这种格式的日期也会返回 true
    2,2022-02-01 这种的去匹配 Y-m 也是返回 true

    后面又找到一种方法,新测是规避了以上两种情况:

    1. function checkDatetimeFormat(string $format = 'M d, Y', $datetime): bool
    2. {
    3. return DateTime::createFromFormat($format, $datetime) !== false;
    4. }

    参考资料:https://nowtime.cc/php/1405.html