PHP 5.3中是否有一种新方法来定义时间戳?
这strtotime('0000-00-00');
将在PHP 5.3之前返回0日期(01/01/1970),在PHP 5.3中返回-62169984000。和30/11 / -0001这样的日期!!
但我在文档中找不到任何解释。任何想法都改变了,或者我错过了什么?
答案 0 :(得分:5)
解释如下:https://bugs.php.net/bug.php?id=46597
引用:
当然,但strtotime()长期处理无效的月和日值与mktime()的处理方式相同,方法是将它们有效地“舍入”为有效值:该月的第0天成为上个月的最后一天, 0月是上一年的最后一个月,依此类推。鉴于这种解释,版本很明显成为11月的最后一天-1(更好地称为公元前2年)。
现在不可能改变行为:checkdate()无论如何都是一种更好的嗅探无效日期的方法,对于依赖strtotime()行为的人而言,这将是一个潜在的令人讨厌的向后兼容性中断