【问题标题】:php why new DateTime ('now') returns 1970 after 2038 [duplicate]php为什么新的DateTime('now')在2038年之后返回1970 [重复]
【发布时间】:2014-12-10 17:49:20
【问题描述】:

我决定检查 unix 纪元的结束,因此我将日历中的日期更改为 2038 年以上。 我很惊讶:

$now = new DateTime('now');    echo $now->format('Y-m-d');

返回 1970-01-01 !

$now = new DateTime();

返回相同,php 5.4 返回相同。 然而:

$now = new DateTime('9000-10-01');

返回 9000-01-01。 如何使用 DateTime 获取 2038 年之后的当前日期?

我的操作系统:winxp x32 和 php 5.3/5.4 x86。

【问题讨论】:

标签: php datetime unix-timestamp


【解决方案1】:

“如何使用 DateTime 获取 2038 年之后的当前日期?”

我会考虑使用完全 64 位的堆栈和操作系统。顺便说一下,unix 时间戳约定不仅仅在 unix/linux 中使用。

请参阅 php time function 作为一个很好的例子。如果您仅使用 32 位整数,则此函数无法给出 2038 年之后日期的结果。

【讨论】:

  • 你是对的。 php x64 没有这样的问题。仅在 php x86 中存在问题(即使在 Windows 7 x64 中)。
猜你喜欢
  • 2019-04-19
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 2011-06-13
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多