我刚刚发现,运行日历脚本时,PHP中的时间戳限制为2038。这实际上是什么意思?为什么是2038,而不是2050或2039?如果时间戳记仅是从给定日期(1970年)起算的秒数,为什么还要限制?

有帮助吗?

解决方案

限制是由大多数C库用来表示该计数的4字节带符号整数强加的。快速数学(假设365天年,并非完全正确): 通用标签

这也意味着下限约为1900。一些库已开始引入64位纪元计数,但目前它们之间相距甚远。

其他提示

32位整数的最大值是2,147,483,647。如果加上+1,则得到-2,147,483,647。从20年1月19日至1970年1月19日的2,147,483,647秒是2038年1月19日。如果再增加一秒,您将在1902年获得某个日期。

我的猜测是,它存储在固定数量的位中,这意味着时间戳可以达到多大的限制。我们可以做一些数学运算来弄清楚。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top