PHP DateTime DST



我也搜索了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吗?还是必须手动设置夏令时?

相关问题是,如果我想获得一个独立于夏令时的UTC时间(我可以存储),以下方法可行吗?

$date = new DateTime('now', 'UTC');
$date->format('Y-m-d H:i:s');

还是最好使用简单的gmdate('Y-m-d H:i:s')

您的假设是正确的。

此外,这将花费你10秒来验证自己。

编辑:

正确的语法是:

$date = new DateTime('2012-03-16 14:00:00', new DateTimeZone('UTC'));

关于你的第二个问题。DateTime构造函数中传递的时区是"reference"时区。

除非默认时区也设置为UTC(date_default_timezone_set),否则您仍应调用->setTimeZone(新的DateTimeZone('UTC'))以在UTC时区中对其进行格式化。

下一次,在询问之前,试着更努力一点。

相关内容

  • 没有找到相关文章

最新更新