在PHP 5.3中定义时间戳的新方法?

时间:2011-09-01 15:56:38

标签: php timestamp strtotime

PHP 5.3中是否有一种新方法来定义时间戳?

strtotime('0000-00-00');

将在PHP 5.3之前返回0日期(01/01/1970),在PHP 5.3中返回-62169984000。和30/11 / -0001这样的日期!!

但我在文档中找不到任何解释。任何想法都改变了,或者我错过了什么?

1 个答案:

答案 0 :(得分:5)

解释如下:https://bugs.php.net/bug.php?id=46597

引用:

  

当然,但strtotime()长期处理无效的月和日值与mktime()的处理方式相同,方法是将它们有效地“舍入”为有效值:该月的第0天成为上个月的最后一天, 0月是上一年的最后一个月,依此类推。鉴于这种解释,版本很明显成为11月的最后一天-1(更好地称为公元前2年)。

     

现在不可能改变行为:checkdate()无论如何都是一种更好的嗅探无效日期的方法,对于依赖strtotime()行为的人而言,这将是一个潜在的令人讨厌的向后兼容性中断