我有以下日期字符串,格式如下:
$received = "Tue, 15 Sep 2015 12:35:03 +0000 (UTC)";
我想将此转换为欧洲/伦敦时区,因为实际时间应该是13:35:03
任何想法如何做到这一点?
由于
答案 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');