【问题标题】:Have Set date.timezone, Why PHP still Showing UTC Times?已设置 date.timezone,为什么 PHP 仍显示 UTC 时间?
【发布时间】:2019-09-20 19:17:52
【问题描述】:

我在我的 php.ini 文件中设置了 date.timezone=Australia/Melbourne。但是,我正在恢复 UTC 时间。详情如下。

根据phpinfo,我编辑了加载的配置文件:/etc/php.ini

我已经设置好了:

date.timezone = Australia/Melbourne

还尝试了“澳大利亚/墨尔本”

date.timezone 不在此目录中的任何文件中:

/etc/php-7.3.d

我正在运行 NGINX 和 php-fpm,我尝试过多次重启。

服务 php-fpm 重启

下面是一些简单的测试代码:

echo date_default_timezone_get() . "<br/>";
echo ini_get('date.timezone') . "<br/>";
$date = date('m/d/Y h:i:s a', time());
echo $date;

在另一台具有类似设置的机器上,我得到了本地时间:

Australia/Melbourne
Australia/Melbourne
05/02/2019 07:05:05 pm

然而,在问题服务器上,我得到了 UTC 时间:

Australia/Melbourne
Australia/Melbourne
05/02/2019 09:05:05 am

Linux 说问题实例的日期时间是:

Thu May  2 19:05:00 AEST 2019

有什么建议吗?

谢谢brettsh

【问题讨论】:

标签: php timezone


【解决方案1】:

是的,我编辑的文件(/etc/php.ini)是由 phpinfo.php 中的“加载的配置文件”值确定的。这实际上是 /etc/php-7.3.ini 的软链接,但是我正在编辑正确的文件。

我确定“澳大利亚/墨尔本”是一个有效的时区。

我已经尝试过:

export TZ='Australia/Melbourne'

将以下内容添加到 www.conf

php_admin_value[date.timezone] = Australia/Melbourne

搜索看看 date.timezone 是否在其他地方设置不同:

grep -rn "date.timezone" /etc/

搜索 UTC:

grep -rn "UTC" /etc/

也试过了

date_default_timezone_set('Australia/Melbourne');

也许这是我的问题: https://bugs.php.net/bug.php?id=77582

【讨论】:

    【解决方案2】:

    原来是 那个版本的 PHP 有问题。

    我需要做的就是从 PHP 7.3.2 升级到 7.3.4。

    我正在运行 AWS Linux,所以我只运行了这个:

    yum update
    

    【讨论】:

      猜你喜欢
      • 2019-03-05
      • 2023-04-02
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 2011-06-20
      相关资源
      最近更新 更多