时区转换无法在我的服务器上运行

时间:2018-04-11 09:20:14

标签: php timezone

此PHP代码应将澳大利亚/悉尼日期时间转换为UTC。它不起作用。生成的日期时间未转换:

$local_datetime = "2018-04-11 16:01:48";
echo "Local datetime: $local_datetime<br>";

$local_timezone = new DateTimeZone('Australia/Sydney');
$datetime = new DateTime($local_datetime, $local_timezone);

$utc_timezone = new DateTimeZone('UTC');
$datetime->setTimeZone($utc_timezone);

$utc_datetime = $datetime->format('Y-m-d H:i:s');
echo "UTC datetime: $utc_datetime";

输出结果为:

Local datetime: 2018-04-11 16:01:48  
UTC datetime: 2018-04-11 16:01:48

我在phptester.net上尝试了代码并得到了正确的结果:

Local datetime: 2018-04-11 16:01:48  
UTC datetime: 2018-04-11 06:01:48

我还使用了检查我的时区名称:

DateTimeZone::listIdentifiers(DateTimeZone::ALL);

'澳大利亚/悉尼'和'UTC'都在名单上。

知道可能出现什么问题吗?

编辑 - 似乎在此命令中指定“UTC”作为时区是问题:

$utc_timezone = new DateTimeZone('UTC')

如果我将其更改为

$utc_timezone = new DateTimeZone('Atlantic/Reykjavik');

然后我得到正确的转换到冰岛时间,这与UTC相同:

Local datetime: 2018-04-11 16:01:48  
UTC datetime: 2018-04-11 06:01:48

我仍然不知道为什么“UTC”在我的服务器上不起作用。但“大西洋/雷克雅未克”是一种解决方法。

0 个答案:

没有答案