我不确定这是不是一个错误,但这种行为绝对是奇怪的。 PHP相对时间格式非常强大,但以下输出让我感到惊讶:
var_dump(new \DateTime("last day of March +1 month"));
var_dump(new \DateTime("31 March +1 month"));
结果:
object(DateTime)#10617 (3) { ["date"]=> string(26) "2016-04-30 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }
object(DateTime)#10617 (3) { ["date"]=> string(26) "2016-05-01 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }
问题在于第二个var_dump
,我知道四月有30天,这就是为什么输出是6月1日的原因,但我希望它能采取相对论考虑到,与第一个var_dump
一样。
那么,这种行为是否记录在某处?或者这实际上是PHP中的错误?