【问题标题】:date_default_timezone_set('UTC') not workingdate_default_timezone_set('UTC') 不起作用
【发布时间】:2012-07-31 00:38:51
【问题描述】:

这似乎很奇怪,但我已经检查了所有内容,但仍然发生了奇怪的事情。

我无法更改我的 php 脚本的时区

首先要做的是:我所做的是这样的:

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

当我在测试http://codepad.org/rpYZ0flA 上尝试这个时,这似乎工作正常。

我的服务器时区设置为 UTC+8:00 台北,但是当我尝试上面的代码时,它并没有真正工作。它仍然在我的服务器时区显示我当前的 date_time,而不是遵循上面的代码。

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

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

为什么会这样?这已经是一个错误了吗?或者 server_setup 上的错误,或者我只是错过了我的代码中的某些内容?

谢谢。

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

修复:

我通过手动更改 php.ini 得到了修复

【问题讨论】:

标签: php configuration timezone


【解决方案1】:

它应该可以正常工作。

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

<?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";

Here is a codepad preview 为您提供方便。

返回将如下所示(更新日期和时间):

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

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

【讨论】:

    【解决方案2】:

    如果您只想要自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00 GMT)以来的秒数和时区。使用下面的代码:

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

    【讨论】:

      【解决方案3】:

      试试这个

      <?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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 1970-01-01
        • 2017-12-04
        • 2013-02-12
        • 1970-01-01
        • 1970-01-01
        • 2017-04-03
        相关资源
        最近更新 更多