我工作的Fedora上运行的PHP应用程序中存在时区问题,我很想知道tzdata和timezonedb之间的区别以及PHP如何使用它们来计算timezome?
问题是"欧洲/莫斯科"应该是GMT+3,但PHP增加了一个小时,即GMT+4。大多数解决方案都是关于运行的
pecl upgrade timezonedb
检查 PHP 生成的时区列表不完整
在没有安装 timezonedb 扩展的情况下,我们更新了 tzdata
yum update tzdata
然后问题就解决了!
那么,如果没有安装时区数据库,PHP 会使用 tzdata 还是什么?
PHP: 5.5.18操作系统 : Fedora 19
数据库(tzdata)附带PHP,默认情况下使用。更高版本的数据库可以通过 PECL 单独安装在系统上。
Pecl 时区数据库扩展表示默认情况下存在嵌入式数据库。
此扩展是内置时区的直接替代品 PHP 附带的数据库。您应该只安装此扩展 如果您需要获取更高版本的时区数据库 PHP附带的那个。
对于使用 php 5.5+ 的 centos 6 用户,请使用以下命令:
yum -y update tzdata
pecl channel-update pecl.php.net
pecl install --ignore-errors timezonedb
echo "extension=timezonedb.so" > /etc/php.d/timezonedb.ini