【问题标题】:DateTime->format("U") doesn't return a value with timezone infoDateTime->format("U") 不返回带有时区信息的值
【发布时间】:2013-02-20 03:09:49
【问题描述】:

在 PHP 5.2 中,我使用以下代码从 DateTime 对象中获取时间戳。

$dateTime = new DateTime("now", new DateTimeZone("America/Los_Angeles") );

echo $dateTime->format("U");

问题在于 format("U") 只是返回服务器时间戳,即 UTC。

如何让它从太平洋时区(洛杉矶)返回时间戳?

【问题讨论】:

  • 时间戳应该是 UTC(定义为自 GMT 纪元以来的秒数)。将它们偏向本地化表示会适得其反,应保留在演示之前将它们转换为日期字符串。

标签: php datetime timezone


【解决方案1】:

您对时间戳的概念不正确,时间戳时区独立,它被定义为自协调世界时 (UTC) 1970 年 1 月 1 日午夜以来经过的秒数。

【讨论】:

    【解决方案2】:

    尝试在 PHP 脚本顶部设置时区。我认为时间戳总是UTC。使用 date() 函数将其格式化为您需要的格式。

        // set timezone to pacific time
        date_default_timezone_set('America/Los_Angeles');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 2017-01-18
      • 1970-01-01
      • 2013-04-03
      • 2013-09-27
      • 1970-01-01
      • 2014-12-31
      相关资源
      最近更新 更多