php DateTime对象没有给出无效日期输入的错误?

lau*_*kok 2 php datetime php-5.4

为什么php DateTime对象没有给出无效日期输入的错误?例如,

$date_test = '13-10-31';

$datetime = new DateTime();
$date = $datetime->createFromFormat('Y-m-d', $date_test);
$date_errors = $datetime->getLastErrors();
print_r($date_errors);
Run Code Online (Sandbox Code Playgroud)

结果,

Array
(
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

)
Run Code Online (Sandbox Code Playgroud)

我已将日期格式设置为'Ymd',这是yyyy-mm-dd所以'13 -10-31'应该是错误输入不是?

编辑

如果我将此行更改$datetime->createFromFormat('Y-m-d', $date_test);

$datetime->createFromFormat('YY-m-d', $date_test);
Run Code Online (Sandbox Code Playgroud)

无论我输入什么,我都会收到错误.例如,

$date_test = '2013-10-31';
Run Code Online (Sandbox Code Playgroud)

结果,

Array
(
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 2
    [errors] => Array
        (
            [4] => Unexpected data found.
            [10] => Data missing
        )

)
Run Code Online (Sandbox Code Playgroud)

为什么!??

Bli*_*itZ 5

echo $date->format('d-m-Y')显示31-10-0013,所以看起来像PHP正常威胁你的约会.


UPDv1:

这在文档中没有提到.如果你研究echo $date->format('U');它仍会给你一个负时间戳.

根据3v4l测试,自PHPv5.3.0以来这个功能得到了证实.