DateTime Class不支持1960年以前的年份?

sla*_*.bg 1 php datetime

我有以下情况:

$birth = new DateTime('1960');
echo $birth->diff( new DateTime() )->format('%y');
Run Code Online (Sandbox Code Playgroud)

输出是56 - 这没关系,但是当我设置一个参数1959或更小的值时,我得到了结果0.例如:

$birth = new DateTime('1959');
echo $birth->diff( new DateTime() )->format('%y');
Run Code Online (Sandbox Code Playgroud)

输出为0.

测试环境是:

  • PHP 5.5.9-1ubuntu4.17
  • Apache/2.4.10(Ubuntu)

谢谢!

小智 6

您需要为新DateTime()的输入指定有效的DateTime.

我猜1960年本身只能被解释为一年,而1959年可能是一个时间.打印出现在的时间与19:59的时间之间的差异为0.

你最好指定一个完整的日期,比如1959-01-01.