在排除奇怪错误后,我遇到了这个问题:
echo strtotime("2050/09/19");
返回false
为什么?
谢谢!
答案 0 :(得分:4)
看起来你没有64位PHP。来自strtotime文档:
注意:强>
时间戳的有效范围通常是从星期五,1901年12月13日20:45:54 UTC到星期二,2038年1月19日03:14:07 UTC。 (这些是与32位有符号整数的最小值和最大值相对应的日期。)此外,并非所有平台都支持负时间戳,因此您的日期范围可能不会早于Unix时期。这意味着,例如1970年1月1日之前的日期不适用于Windows,某些Linux发行版和一些其他操作系统。 PHP 5.1.0和更新的版本克服了这个限制。
对于64位版本的PHP,时间戳的有效范围实际上是无限的,因为64位可以代表任何方向上大约2930亿年。
答案 1 :(得分:3)
在32位系统上,它无法处理将来的日期:strtotime
答案 2 :(得分:3)
这是因为2050年不在32位Unix时代(在2038年的某个地方结束)。有关the documentation page for strtotime()的更多信息,请参阅。
答案 3 :(得分:2)
时间戳的有效范围通常为从星期五,1901年12月13日20:45:54 UTC到星期二,2038年1月19日03:14:07 UTC 。 (这些是与32位有符号整数的最小值和最大值相对应的日期。)此外,并非所有平台都支持负时间戳,因此您的日期范围可能不会早于Unix时期。这意味着,例如1970年1月1日之前的日期不适用于Windows,某些Linux发行版和一些其他操作系统。 PHP 5.1.0和更新的版本克服了这个限制。
对于64位版本的PHP,时间戳的有效范围实际上是无限的,因为64位可以代表任何方向上大约2930亿年。