PHP将日期和时间从UTC转换为欧洲/伦敦

时间:2015-09-15 21:44:01

标签: php datetime

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

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

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

任何想法如何做到这一点?

由于

3 个答案:

答案 0 :(得分:4)

设置新的时区可能要动态设置,然后从数据库设置新的dateTime:

$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

答案 1 :(得分: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 :(得分:0)

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

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