PHP date()仅从1970年到2038年

时间:2011-07-27 00:45:29

标签: php date

首先,这不是关于如何解决问题的问题,因为我的日期输出是1969年。

这是一个关于为什么在1970年之前或2038年之后使用date()时不存在时间的问题。

我已尝试搜索SO和Google,但所有这些都是因为人们在错误地使用date()时出错,导致熟悉的December 31, 1969 5:00 pm输出

有谁知道为什么它不能在1970年之前去?我们应该停止使用date()因为它在2038年之后无法使用吗?这个历史是什么?处理此范围之外的日期有什么作用?

3 个答案:

答案 0 :(得分:4)

date()上的PHP manual page解释了这一点:

  

时间戳的有效范围通常是从格林尼治标准时间1901年12月13日20:45:54到格林威治标准时间2038年1月19日星期二03:14:07。 (这些是与32位有符号整数的最小值和最大值对应的日期。)

您将于1969年12月31日收到这一事实,这意味着您可能会向timestamp提供一个奇怪的date()参数,从而导致日期不符合您的预期。就像@Mitch Wheat在他的评论中所说,这与Unix时间有关,因为它与1970年1月1日相对。

答案 1 :(得分:4)

这是2038问题

并查看,I'm in year 1653

答案 2 :(得分:3)

比较数字2 ^ 31和两个日期之间的秒数。