我也搜索了PHP手册和StackOverflow,但没有真正找到我的问题的正确答案。我的日期以UTC格式存储。现在,如果我这样做了:
$date = new DateTime('2012-03-16 14:00:00', 'UTC');
$date->setTimezone('Europe/Budapest');DateTime::setTimezone()会自动设置DST吗?那么,如果我格式化字符串,它会在夏季时间输出15:00:00,在冬季时间输出16:00:00吗?或者我必须手动设置DST?
相关问题,如果我想获得一个独立于DST的UTC时间(我可以存储),可以使用以下方法吗?
$date = new DateTime('now', 'UTC');
$date->format('Y-m-d H:i:s');或者更好地使用简单的gmdate('Y-m-d H:i:s')
发布于 2012-03-16 20:00:13
你的假设是正确的。
此外,这将花费您10秒钟来验证您自己。
编辑:
正确的语法是:
$date = new DateTime('2012-03-16 14:00:00', new DateTimeZone('UTC'));关于你的第二个问题。传入DateTime构造函数的时区是“reference”时区。
除非默认时区也设置为UTC (date_default_timezone_set),否则仍应调用->setTimeZone(new UTC (‘UTC’))在UTC时区中对其进行格式化。
下一次,在询问之前,试着更努力地尝试一些东西。
https://stackoverflow.com/questions/9736789
复制相似问题