php - 为什么在我的系统中默认的 PHP 时区是 "Europe/Moscow"?

标签 php linux ubuntu timezone

我一直在许多 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

这种奇怪行为的原因是什么?我该怎么做才能解决这个问题?

目前,我在 Ubuntu 19.10 和 PHP 7.3 上,但这个问题在以前的操作系统和 PHP 版本中也存在。

最佳答案

您自己说过莫斯科和 Istanbul 尔处于同一时区。如果您担心您的 PHP 程序在发生变化时可能会影响功能,您可以使用该功能

date_default_timezone_set(字符串 $timezone_identifier):bool

覆盖 php.ini 文件。我已经包含了一个 link到文档。

关于php - 为什么在我的系统中默认的 PHP 时区是 "Europe/Moscow"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58606738/

相关文章:

java - 我们可以从前端html页面在Linux服务器中创建文件吗?

Python 类利用 Turtle 对象在 Windows 上不工作,在 Linux 上工作

php - 使用 PHP 关闭远程 linux 服务器

android - monkeyrunner 导入操作系统数组索引outofbounds异常

ubuntu - TCPDUMP 安装问题

java - 授予 Elasticsearch 访问 Java 的适当权限

javascript - 将 PHP 数组分配给 JS 数组时,数组值的每个字母表都会被分割

php根据mysql值检查复选框

php - 如果要遵循 REST 架构,如何访问 codeigniter 中的 URL 参数?

计算克隆函数的可变参数数量