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


strtotime('0000-00-00 00:00') return negative value

Php strtotime('0000-00-00 00:00')表现出奇怪的行为。它返回的负值大约是-6216998400。

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

但当我签入其他32位系统时,它返回false。

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

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