无法理解php中time()和date()的本质

4 php time date

date("Y",1340896077)//1340896077 are the seconds till 2012 from 1970
Run Code Online (Sandbox Code Playgroud)

给出2012年这是正常的

And date("Y",1940896077)
Run Code Online (Sandbox Code Playgroud)

给出2031这也是正常的

date("Y",2240896077)

给1904年绝对不是正常的.它应该给2041年.

现在我想在php中对time()和date()进行一些解释.

Dmi*_*sev 7

PHP使用32位整数.

32位整数限制为2,147,483,647

在第三个示例中,值溢出.把它想象成一辆汽车KM柜台.它仅限于某些值(在我们的例子中为2,147,483,647),一旦你将这个值传递回0.

这可能导致2038年问题(记住2000年的错误?类似的概念).

在"PHP开发人员会议纪要"中有一个提议添加64位整数,我不知道它走了多远,他们的政策重新定位时间相关的功能是什么.

希望这有帮助:)

  • PHP已经在今天的64位系统上以64位整数运行良好.我们都需要在未来25年内转向64位系统. (2认同)