【问题标题】:Using DateTime in PHP, generating bad unix epoch time from $foo->format('U')在 PHP 中使用 DateTime,从 $foo->format('U') 生成错误的 unix 纪元时间
【发布时间】:2011-02-10 16:55:29
【问题描述】:

我似乎无法从这个 PHP DateTime 对象中得到正确的 Unix 纪元时间。

$startingDateTime = "2005/08/15 1:52:01 am";

$foo = new DateTime($startingDateTime, new DateTimeZone("America/New_York"));

echo $foo->format('U');

给了

1124085121

这是星期一,2005 年 8 月 15 日 00:52:01 GMT -500(根据 EPOCH CONVERTER),但这是不正确的一个小时。

它应该是 1124088721 并在 2005 年 8 月 15 日星期一 01:52:01 GMT -500 时向我吐口水

任何帮助将不胜感激。

【问题讨论】:

    标签: php datetime time epoch


    【解决方案1】:

    这可能是纪元转换器的 DST 问题。我用另一个converter 表示UTC 时间,用then 表示America/New_York。我得到了正确答案timestamp=1124085121

    【讨论】:

    • 我认为你是对的。当我试图从数据库中取出数据并将其重新显示到屏幕上时,问题最终出现在后端。正在制作一个新的 DateTime 对象并将 UTC 时间戳和时区传递给它。带有要显示的数据的 DateTime 对象正在解释 UTC 时间戳,就好像它没有偏移时一样
    猜你喜欢
    • 2021-10-30
    • 2014-10-04
    • 2012-03-10
    • 2015-04-22
    • 2012-01-30
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多