PHP DateTime DST

Ger*_*osi 4 php timezone date

我也搜索了PHP手册和StackOverflow,但还没有真正找到我的问题的正确答案.我的日期以UTC格式存储.如果我这样做:

$date = new DateTime('2012-03-16 14:00:00', 'UTC');
$date->setTimezone('Europe/Budapest');
Run Code Online (Sandbox Code Playgroud)

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');
Run Code Online (Sandbox Code Playgroud)

或者更好用简单gmdate('Y-m-d H:i:s')

Eve*_*ert 5

你的假设是正确的.

此外,这将花费您10秒钟来验证自己.

编辑:

正确的语法是:

$date = new DateTime('2012-03-16 14:00:00', new DateTimeZone('UTC'));
Run Code Online (Sandbox Code Playgroud)

至于你的第二个问题.DateTime构造函数中传递的时区是"引用"时区.

除非默认时区也设置为UTC(date_default_timezone_set),否则您仍应调用 - > setTimeZone(new DateTimeZone('UTC'))将其格式化为UTC时区.

下次,在询问之前尝试一点点尝试.