【发布时间】:2014-06-06 16:04:14
【问题描述】:
我正在尝试将午夜 GMT 转换为不同的时区。我们有一个从午夜到午夜的每日测验,我希望能够向人们动态显示不同的时区,以便它随着 DST 自动变化。
按照this answer我想出了这段代码
$dateFormat = 'h:i a';
$date = new DateTime(gmdate('Y-m-d'), new DateTimeZone('GMT'));
$date->setTimezone(new DateTimeZone('Europe/London'));
$tzWesternEurope = date($dateFormat);
$date->setTimezone(new DateTimeZone('Europe/Berlin'));
$tzCentralEurope = date($dateFormat);
$date->setTimezone(new DateTimeZone('Europe/Athens'));
$tzEasternEurope = date($dateFormat);
// ... And so for 17 different time zones around the world.
但是它不起作用。正如您从这个eval.in 示例中看到的那样,所有时区都显示相同,并显示错误的时间。我做错了什么?
我尝试将gmdate('Y-m-d') 更改为时间、00:00 和12am,但均未成功。我尝试使用 UTC 而不是 GMT 作为基础 DateTimeZone,但同样没有区别。
【问题讨论】: