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

时间:2013-07-23 09:00:50

标签: php datetime strtotime

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

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

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

1 个答案:

答案 0 :(得分:11)

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

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