【发布时间】:2020-04-27 14:13:07
【问题描述】:
我有以下 PHP 代码:
<!DOCTYPE html>
<html>
<body>
<?php
$date = date_create("2020-04-27T15:27:59+00:00", new DateTimeZone("Europe/Berlin"));
echo $date->setTimezone(new DateTimeZone("Europe/Berlin"))->format('Y-m-d H:i:s');
?>
</body>
</html>
我预计我的输出是:2020-04-27 15:27:59 相反,我得到:2020-04-27 17:27:59 那么这两个多小时从何而来?我不明白我做错了什么。
【问题讨论】:
-
我不知道你为什么要在输出日期之前再次设置时区,但如果你删除它,你会得到预期的结果
-
澄清一下,您的时间字符串中的
+00:00指定了 UTC,它会覆盖您传入的时区。 -
啊,好吧...现在很明显了!谢谢。我的想法太复杂了:-)