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

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

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

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

没有正确的解决方案

其他提示

据我所知,时区DB(TDB)分布在PHP本身中。因此,一段时间后,时区DB变得过时了,您应该更新PHP或TDB以反映TDB的变化。

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

我不知道有一种直接在PHP中更新TDB的方法。创建了PECL扩展名来针对此问题。

最好只是更新您的PHP版本(特别是,如果您想在Windows机器上更新它,否则您必须自己编译扩展程序),因为据我所知,扩展名并不仅适用于Windows,只有unix/ unix/ Linux-因此,如果您想在Windows上进行操作,则必须使用VC6或VC9编译器自己编译它)。

因此,如果您可以更新最快的解决方案的PHP版本(对我来说至少是最快的),那么当然PHP可能没有最新的时区DB信息,但是我必须解决时区DB的问题后来我拥有的PHP版本。 如果您为Unix/Linux进行操作,那么您不妨尝试使用PECL扩展名,我认为那可能对您来说更容易,更快。

PECL扩展实际上是时区DB。每次发布新版本的DB 这里, ,将扩展程序使用更新的时区数据库进行重新编译。

因此,您实际上将用新重新编译的版本覆盖旧的扩展名并重新启动Web服务器;假设PHP被用作模块。

进行完整的时区更新(我们遇到了不正确的俄罗斯 /莫斯科时区):

#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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top