strtotime日期验证在无效日期传递

Rob*_*Fos 1 php date strtotime

我正在设置一个基本的CMS,允许客户端将文章添加到他们的移动应用程序.CMS使用PHP编码,并使用JSON将内容传送到移动应用程序.

现在我的问题是有一个选项可以在某个特定日期发布文章,所以我想验证日期以检查它是否有效.

所以为了测试可能性,我制作了一个小脚本.我strtotime()用来检查日期是否有效,我的脚本是:

<?php

    $date[] = '2011-31-01';
    $date[] = '2011-02-31';

    foreach($date as $str) {
        if(strtotime($str) == false) {
            $result[] = '<p>[' . $str . '] Resulted in an <span style="color: red;">Error.</span></p>';
        } else {
            $result[] = '<p>[' . $str . '] Resulted in <span style="color: green;">Success.</span></p>';
        }
    }

    foreach($result as $return) {
        echo $return;
    }

?>
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,迄今为止2011-02-31这是31st February 2011正在恢复为有效,当显然事实并非如此.所以我的问题是它为什么这样做?有没有更好的方法来检查日期是否有效且存在?

提前致谢.

Mob*_*Mob 6

checkdate(); 验证公历日期.如果给定的日期有效,则返回TRUE; 否则返回FALSE.

 if(checkdate(2, 31, 2011)){
      echo "Yeah";

  } else {echo "nah";}
Run Code Online (Sandbox Code Playgroud)

它返回false!

这是要走的路.