date_default_timezone_set('UTC') not working


date_default_timezone_set('UTC') not working

这看起来很奇怪,但我已经检查了所有内容,但仍然发生了一件奇怪的事情。

我无法更改php脚本的时区

首先:我做的事情是这样的:

<?php
date_default_timezone_set('UTC');
echo '<br>';
echo date('Y-m-d H:i:s');
?>

当我在测试中尝试这个时,它似乎运行良好http://codepad.org/rpYZ0flA.

我的服务器的时区设置为UTC+8:00 Taipei,但当我尝试上面的代码时,它并没有真正工作。它仍然在服务器的时区中显示我的当前日期时间,而不是按照上面的代码。

这是我的服务器的php.ini配置:

date/time support                    enabled
"Olson" Timezone Database Version   2012.3
Timezone Database                   internal
Default timezone                     Europe/Berlin 

为什么会发生这种情况?这已经是一个bug了吗?或者服务器设置错误,或者我只是在代码中遗漏了一些内容?

谢谢。

注意:我的环境是使用PHP 5.4.4 在虚拟机中运行的Windows 7N

修复:

我通过手动更改php.ini

得到了修复

试试这个

<?php 
echo date('Y-m-d H:i:s T', time()) . "'n";
date_default_timezone_set('UTC');
echo date('Y-m-d H:i:s T', time()) . "'n";

在这里你可以找到测试结果http://codepad.org/gc5oYnLW

如果您只想要自Unix Epoch(1970年1月1日00:00:00 GMT)以来带时区的时间(以秒为单位)。使用以下代码:

<?php
date_default_timezone_set("UTC"); 
time()+date("Z");

它应该可以毫无问题地工作。

如果有疑问,请使用以下代码进行检查:

<?php 
date_default_timezone_set('America/Virgin');
echo date('Y-m-d H:i:s T') . "'n";
date_default_timezone_set('UTC');
echo date('Y-m-d H:i:s T') . "'n";

这是一个代码板预览为您提供方便。

退货将是这样的(有更新的日期和时间):

2017-12-11 03:09:58 AST
2017-12-11 07:09:58 UTC

如果失败,请仔细检查服务器配置……从PHP.ini文件开始。