代码之家  ›  专栏  ›  技术社区  ›  Gino Pane

PHP DateTime UTC怪异行为

  •  1
  • Gino Pane  · 技术社区  · 6 年前

    $d = new DateTime('@1539691200');
    $d->setTimezone(new DateTimeZone('UTC'));
    var_dump($d);
    

    如你所见, DateTime 由时间戳构造,因此忽略服务器的时区。然后我将时区设置为“UTC”,这在任何地方都应该相同。但不管怎样这是我机器的输出:

    object(DateTime)#1 (3) {
      ["date"]=>
      string(26) "2018-10-16 13:00:00.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(3) "UTC"
    }
    

    这是来自 here

    object(DateTime)#1 (3) {
      ["date"]=>
      string(26) "2018-10-16 12:00:00.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(3) "UTC"
    }
    

    为什么会这样?不同服务器上的UTC如何不同?可能是那个 timezonedb 问题?

    0 回复  |  直到 6 年前