【发布时间】:2019-10-29 11:39:39
【问题描述】:
我一直在许多 Ubuntu 版本上运行 PHP,它们都表现出相同的“功能”。当我将phpinfo() 函数的输出转储到网页时,我看到以下内容:
Default timezone: Europe/Moscow
当php.ini 文件(/etc/php/7.?/apache2/php.ini 和/etc/php/7.?/cli/php.ini)都将date.timezone 设置注释掉时,默认情况下就是这种情况。
我系统的时区一直正确设置为Europe/Istanbul:
$ file /etc/localtime
/etc/localtime: symbolic link to /usr/share/zoneinfo/Europe/Istanbul
但是,PHP 认为我的本地时区是 Europe/Moscow。目前,这两个时区是相似的,但过去不是这样,将来也可能不是。
为了解决这个问题,每次更新这些php.ini文件时(例如,补丁或系统升级后)我都必须手动编辑它们并设置:
date.timezone = Europe/Istanbul
这种奇怪行为的原因是什么?我可以做些什么来解决这个问题?
目前,我使用的是带有 PHP 7.3 的 Ubuntu 19.10,但以前的操作系统和 PHP 版本也存在问题。
【问题讨论】: