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年之间的日期仍然会产生负数。