strtotime('0000-00-00 00:00')返回负值

pan*_*kaj 4 php datetime strtotime

Php strtotime('0000-00-00 00:00')表现出奇怪的行为.它的返回负值类似于-62169984000.

我的64位系统中有Php版本5.4.17.它应该返回预期的错误值.

但是,当我检查其他32位系统时,它返回false.

Jon*_*Jon 11

在你的系统上,整数是64位,因此有足够的范围来计算从Unix纪元一直到0 AD的秒数.因此strtotime按宣传方式工作并返回(非常大的)负数.返回值是正确的,您的期望不是.

在32位系统中,整数范围仅足以覆盖〜68年的时间段,因此早于1970 - 68 = 1902 false之前返回将导致返回.1902年至1970年之间的日期仍将导致负数.