5

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

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

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

4

1 回答 1

11

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

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

于 2013-07-23T09:03:41.273 回答