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

tzm*_*447 8 php timezone datetime pecl

phpinfo()显示我们的系统使用""Olson"Timezone Database Version 2010.3".我认为现在已经过时了,但找不到可以确认的权威位置.

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

You should add "extension=timezonedb.so" to php.ini
Run Code Online (Sandbox Code Playgroud)

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

dwi*_*ich 6

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

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

我不知道有一种方法可以直接在 PHP 中更新 TDB。PECL 扩展就是为了解决这个问题而创建的。

  • 我不是 PECL 专家,如果您想尝试一下,请搜索有关将其安装到操作系统的信息。我们使用 FreeBSD,安装就像这样简单(伪命令):`pkg_install pecl-timezonedb`。然后重新启动 Apache,就完成了。 (2认同)

Eru*_*409 6

PECL 扩展名实际上是时区 DB。每次从这里发布新版本的数据库时,都会使用更新的时区数据库重新编译扩展。

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