我刚刚发现,运行一个日历脚本,PHP 中的时间戳限制为 2038。这到底是什么意思?为什么是 2038 而不是 2050 或 2039?如果时间戳仅从给定日期(1970 年)开始计算秒数,为什么要限制?
原文由 Shoe 发布,翻译遵循 CC BY-SA 4.0 许可协议
带符号的 32 位整数的最大值为 2,147,483,647。如果你加上 +1,你会得到 -2,147,483,647。从 01-01-1970 00:00:00 开始的 2,147,483,647 秒是 2038 年 1 月 19 日。如果再增加一秒,就会得到 1902 年某处的日期。
原文由 Sander Marechal 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.2k 阅读
1 回答1.2k 阅读
该限制由大多数 C 库用于表示该计数的 4 字节带符号整数强加。速算(假设一年 365 天,不完全正确):
这也意味着下限约为 1900。一些图书馆已经开始引入 64 位纪元计数,但目前还很少。