timezone中国 - php默认时区




如何更新PHP中的timezonedb(更新时区信息)? (3)

据我所知,时区数据库(TDB)是分布在PHP本身。 因为时区数据库在一段时间后会变得过时,您应该更新PHP或TDB以反映TDB中的更改。

有一个PECL扩展可以发布新的TDB包,您可以下载并安装并在旧的PHP安装中使用它们。

我不知道有一种方法可以直接在PHP中更新TDB。 PECL扩展是针对这个问题而设立的。

phpinfo()显示我们的系统使用“”Olson“时区数据库版本2010.3”。 我认为现在已经过时了,但是找不到可以确认的权威地点。

(a)我可以更新整个PHP的时区信息吗? (b)如果是这样,我该如何更新? 我在http://www.electrictoolbox.com/correct-php-timezone/上看到说明,说安装好相应的模块之后,说我必须:

You should add "extension=timezonedb.so" to php.ini

我们需要这样做吗? 不应该自动使用正确的文件?


最好是更新你的PHP版本(特别是,如果你想在Windows机器上更新它,否则你必须自己编译扩展名),因为据我所知,扩展不是Windows-Ready只有Unix / Linux - 所以如果你想在Windows上做,你将不得不自己编译它使用VC6或VC9编译器)。

所以,如果你可以更新你的PHP版本,这将是最快的解决方案(至少对我来说),当然PHP可能没有最新的时区数据库信息,但我必须解决与时区数据库的问题,它是固定在后来的PHP版本,我有。 如果你正在为unix / linux做这件事,那么你也可以尝试一下PECL扩展,我认为这对你来说可能更容易,也更快。


要完成一个完整的时区更新(我们有不正确的俄罗斯/莫斯科时区的问题):

#for OS - CentOS and MySQL
yum update tzdata
mysql_tzinfo_to_sql /usr/share/zoneinfo
#for PHP
pecl upgrade timezonedb
pecl upgrade intl

#dependencies you may need for the above:
yum install gcc 
yum install gcc-c++
yum install libicu-devel




pecl