Sho*_*hoe 26 php timestamp year2038
我刚刚发现,运行日历脚本,PHP中的时间戳限制为2038.这究竟是什么意思?为什么是2038而不是2050或2039?如果时间戳只计算给定日期(1970年)的秒数,为什么限制?
Mat*_*ley 22
限制是由大多数C库用于表示该计数的4字节有符号整数强加的.快速数学(假设365天,不完全正确):
2147483648 seconds ~ 68.1 years
Run Code Online (Sandbox Code Playgroud)
这也意味着~1900的下限.一些图书馆已经开始引入64位纪元数,但目前它们很少.
San*_*hal 20
32位整数的最大值为2,147,483,647.如果你添加+1,你得到-2,147,483,647.从01-01-1970 00:00:00开始的2,147,483,647秒是2038年1月19日.如果你再增加一秒,你会在1902年的某个地方得到一个日期.