DateTime - 时区偏移和包含夏令时

时间:2015-11-27 10:41:30

标签: php date datetime timezone timezone-offset

我知道有关这个话题的问题一再被问到,但所有的阅读都增加了我的困惑,所以我决定在这里问。

我正在一个用户可以存储与日期相关的事件的网站上工作。该日期存储在mysql数据库中,类型为DATETIME。

所以我“只是”想要做的是:从数据库中获取日期并对其进行格式化,但不知何故,自夏令时开始以来,ech日期显示为减去一小时。

代码:

$date = $item['date'] //<-- the result from the database (2015-11-27 08:15:00)

$dt = new DateTime($date, new DateTimeZone(date_default_timezone_get()));

echo $dt->format('G:i') // 8:15

实际上写在管理表格的“日期字段”中的值是9:15,应该显示的是

如果我错了,请纠正我,但我认为“Summertime”接缝到共同的基础。转移到“冬季”可能是+1

echo $dt->getOffset() // 3600s = 1 hour

如果我的假设是正确的,那么“Summertime”中的偏移应为零,对吗?但这导致了我无法解决的问题,因为我在时区Europe/Berlin本身被定义为UTC +1

这个getOffset()代表哪个偏移代码,如何显示“正确的时间”

向前谢谢!

0 个答案:

没有答案