我知道有关这个话题的问题一再被问到,但所有的阅读都增加了我的困惑,所以我决定在这里问。
我正在一个用户可以存储与日期相关的事件的网站上工作。该日期存储在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()
代表哪个偏移代码,如何显示“正确的时间”?
向前谢谢!