我正在开发一个大量使用时区的网站,该网站需要处于可用的绝对最新 tz 信息的最前沿(我已经通过tz 邮件列表 http://news.gmane.org/gmane.comp.time.tz)。我不知道的是如何让 PHP 安装在我的开发计算机和 Web 主机上运行,以使用更多最新的 tz 数据而不是已有的旧数据。这不仅仅是升级 PHP 那么简单,因为即使是最新版本的 PHP 也不一定在任何给定时间都具有绝对最新的 tz 数据。
有人指出,时区数据库包 http://pecl.php.net/package/timezonedb in pecl
将使我获得该软件包的最新官方版本,但是如果我需要进一步了解可能尚未正式发布的更新的“前沿”怎么办?我很确定必须使用以下命令来编译新的 tz 数据zic
(以 tzcode 形式分发),并将生成的二进制文件提供给pecl
。我真的不知道这需要什么,因此各个步骤的见解/链接将不胜感激。
如何升级由 PHP 实例本机使用的 Olson 数据库 on (1)XAMPP 开发机器和/或(2)典型的共享托管服务...同时跳过尽可能少的障碍和行政障碍?是否有任何细节可能会使共享托管环境变得更加困难而需要注意?存在数据的多个副本是否可行,以便在有人以某种方式搞砸时可以轻松撤消更改?
由于更改有时没有及时正式发布才能生效,因此我正在专门寻找一种能够自行任意进行这些更改的方法。我也有兴趣探索从“快速/简单”到“严格/最佳”的一系列可能解决方案的潜在权衡。
明确答复
上面的评论给出了比这更好的答案 - 查看 PECL 包timezonedb http://pecl.php.net/package/timezonedb.
我已将其转换为社区 Wiki。
一项调查
来自包的分布式源代码,例如php-5.3.8.tar.bz2
包含奥尔森数据库的翻译ext/date/lib
目录和文件timezonedb.h
, timezonemap.h
, fallbackmap.h
。这意味着 PHP 开发系统中的某处有代码可以从 Olson 数据库的版本中生成此信息,但默认情况下并不分发。此外,它并不是作为 SVN 的一部分进行分发的;我提取了截至修订版 321876 的 PHP 5.3 源代码以及ext/date
目录不包含任何帮助(只是生成的文件)。
因此,向 PHP 维护人员询问如何做到这一点可能是合适的;这当然应该是可能的,而且应该是自动化的(如果他们不让它自动化那就太愚蠢了)。但我不清楚 PHP 维护人员之外的人是否能告诉我该怎么做。
NEWS 文件中的注释表明 Derick Rethans 可能是一个值得联系的人 - 他将数据库更新为 Olson 2010c (2010.3)。您可以在 PHP 中找到他的电子邮件地址run-tests.php
文件位于源目录的顶层;您可以在源中找到备用电子邮件地址ext/date/lib
目录。
Derick Rethans 提供了用于生成文件的转换工具包timezonedb.h
来自奥尔森数据库:
http://svn.xdebug.org/cgi-bin/viewvc.cgi/timelib/trunk/zones/?root=php http://svn.xdebug.org/cgi-bin/viewvc.cgi/timelib/trunk/zones/?root=php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)