【发布时间】:2011-01-02 00:36:52
【问题描述】:
我正在考虑使用 TIMESTAMP 来存储日期+时间,但我读到它有 2038 年的限制。我宁愿将问题分解成小部分,以便新手用户也容易理解,而不是大量提出我的问题。所以我的问题:
- 2038 年问题到底是什么?
- 为什么会发生,发生时会发生什么?
- 我们如何解决?
- 是否有任何可能的替代方法来使用它,并且不会造成类似的问题?
- 我们可以对现有的使用 TIMESTAMP 的应用程序做些什么来避免所谓的问题,当它真正发生时?
提前致谢。
【问题讨论】:
-
还有 28 年的时间。你还在使用 1982 年以来的任何计算机相关技术吗?不太可能。所以不用担心,因为到 2038 年它可能不再是问题了。
-
Gordon,我做了一个预测应用程序。我每个月存了多少钱,然后可以估计我什么时候成为百万富翁。就我而言,28 年并不算多,而且我敢肯定我现在不是唯一一个遇到这个问题的人(我通过使用 64 位数字表示时间戳来解决它)。
-
@Emil 现在使用 64 位整数,您发现自己是解决具体问题的简单方法。不适用于(或需要)每个人,但适用于您的用例。关键是,如果 OP 没有具体问题,比如预测,那么这可能是一个有趣的话题,但他不必担心,因为在一般层面上解决这个问题不是 PHP(注意标签)问题。只是我的 2c。
-
到 2038 年,解析字符串“YYYY-MM-DD HH:MM:SS:mmmm...”将是您梦寐以求的最便宜的操作。到 2038 年,32 位将被淘汰。我怀疑我们所知道的 Unix 时间戳届时是否会存在,如果确实如此,我们的 256 位系统将处理远远超过 4096 位系统在快乐餐中提供的日期。
-
戈登,9 年过去了。 TIMESTAMPS 仍在使用。我们仍然使用 28 年前的技术。它被称为万维网。