为什么getdate(1500000000)将于2017年7月7日返回,而getdate(2500000000)将于1913年2月13日返回

时间:2017-04-20 23:14:20

标签: php date datetime getdate

问题很简单,这是一个错误,或者我在这里遗漏了一些东西,事实是getdate的更大值会返回更早的日期。那里有什么问题?

2 个答案:

答案 0 :(得分:2)

2500000000 = 0x9502F900 = 1001 0101 0000 0010 1111 1001 0000 0000

即。在32位系统上,符号位已设置,因此您实际上得到了一个负数。自1970年宇宙开始以来(根据unix),1913年的日期是负时间戳的明显症状。

答案 1 :(得分:0)

2,500,000,000超过32位整数的最大值。

我提前不知道答案。这些是我用来解决这个问题的资源: http://php.net/manual/en/language.types.integer.php
INT max size for 32bit system