【问题标题】:PHP convert date and time from UTC to Europe/London [duplicate]PHP将日期和时间从UTC转换为欧洲/伦敦[重复]
【发布时间】:2015-12-12 07:22:42
【问题描述】:

我有以下格式的日期字符串:

$received = "Tue, 15 Sep 2015 12:35:03 +0000 (UTC)";

我想将其转换为欧洲/伦敦时区,因为实际时间应该是 13:35:03

有什么想法可以做到这一点吗?

谢谢

【问题讨论】:

  • 也许你想接受我的回答?如果结果输出正确。

标签: php datetime


【解决方案1】:

当前/正确的方法:

$received = "Tue, 15 Sep 2015 12:35:03 +0000 (UTC)";
$date = new DateTime($received);

echo $date->format('c'); // 2015-09-15T12:35:03+00:00

$date->setTimezone(new DateTimeZone('Europe/London'));

echo $date->format('c'); // 2015-09-15T13:35:03+01:00

您从字符串构建 DateTime 对象,然后更改时区。

【讨论】:

    【解决方案2】:

    设置一个新的时区也许你想动态设置它然后从数据库中设置新的日期时间:

    $received = "Tue, 15 Sep 2015 12:35:03 +0000 (UTC)";
    
    $tz = new DateTimeZone('Europe/London');
    $date = new DateTime($received);
    $date->setTimezone($tz);
    echo $date->format('H:i:s');
    

    输出是:

    13:35:03
    

    【讨论】:

      【解决方案3】:

      希望这有助于您创建 DateTime 对象然后转换时区 当您更改时区后显示时,它将显示正确的时间。

      $t = new DateTime($received);
      date_timezone_set($t, timezone_open('Europe/London'));
      echo date_format($t, 'Y-m-d H:i:sP');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-07
        • 1970-01-01
        • 2013-05-29
        • 1970-01-01
        • 2013-10-08
        相关资源
        最近更新 更多