升级 PHP 本地实现的 Olson tz 数据库

2024-06-26

我正在开发一个大量使用时区的网站,该网站需要处于可用的绝对最新 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(使用前将#替换为@)

升级 PHP 本地实现的 Olson tz 数据库 的相关文章

  • 在 PHP 中你使用复数还是单数来命名你的数组? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当我命名数组类型变量时 我经常遇到一个困境 我使用复数还是单数命名我的数组 例如 假设我有一个名称数组 在 PHP 中我会说 names arr
  • AppCache清单错误

    Edit 我不得不删除一些链接 我的清单页面似乎导致我的网页出现错误 当您第一次访问该页面时 所有内容似乎都已成功缓存 但刷新后无法获取存在的文件 我在这里制作了一个快速测试页面来查看 这是我的清单文件 这是一个由 php 和 javasc
  • 我的 zend 应用程序无法在 YouTube 上上传文件

    我正在使用以下代码在 YouTube 上上传小型和大型视频 该代码在本地主机上正常工作 但是当我在服务器上运行它并上传相同的视频时 它会上传所有小文件 但不会上传大文件 上传完成后 YouTube 对于大尺寸文件显示以下错误 失败 无法转换
  • 使用 laravel 拒绝 .composer/config 文件权限

    我在 ubuntu virtualbox 上有一个 laravel 项目 我曾经跑步composer update一切都很好 我不知道有什么变化可能会影响这一点 但现在当我跑步时composer update I get file get
  • IOS 向特定用户推送通知?

    是否可以向特定设备发送 iOS 推送通知 我构建了一个论坛类型的应用程序 用户可以创建问题 其他人可以回答它 我需要向提出问题的特定用户发送 iOS 推送通知 通知他们问题已得到解答 这可以通过 PHP 或其他方法来完成吗 是的 您绝对可以
  • 使用 2 个商户账户的 1 笔交易

    我需要设置一个账单支付系统 以允许使用 2 个商家帐户进行 1 笔交易 例如 1 个商家帐户附加到接收资金的客户 假设 30 美元的购买费用 并且附加我们将向帐单支付服务提供商收取 3 美元的帐单支付费用 因此 资金需要转入 2 个独立的商
  • XAMPP、PROFTPD问题

    我已经在 macOS Mojave 上安装了 XAMPP 当我运行此命令 sudo Applications XAMPP xamppfiles xampp start 时 我收到以下错误 启动 Mac OS X 7 2 10 0 的 XAM
  • 检查 Laravel 模型是否已保存或查询是否已执行

    我见过很多人使用这种方式来检查 Laravel 模型是否已保存 所以现在我想知道这是否是一种安全的方法 我还可以检查下面的查询是否像这样执行 检查模型是否已保存 Eg myModel new User myModel gt firstnam
  • Monolog - 仅记录特定级别的错误

    我在普通 PHP 应用程序中使用 Monolog 我只想记录特定级别的错误 INFO 和不高于 因为我还有其他处理程序 这是我的代码
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • 如何将parameters.yml中的Symfony参数注入Behat 3配置中?

    我需要设置base url for Behat MinkExtension 这是我的一部分应用程序 配置 parameters yml parameters behat base url http my app local app test
  • 如何使用ajax post请求将模态值插入数据库?

    查看代码 div class price div
  • 更改二维数组每一行中的键而不丢失值

    我有一个行数组 其中一个 视觉 数据列有两个相似但不同的键 我想替换其中一个键 以便该列在所有行中具有相同的键 我的输入数组 Ttitle gt lilly Price gt 1 75 Number gt 3 Title gt rose P
  • 将我的 JSON 字符串格式化为 PHP 中的
      有序列表

    我正在为一个宠物项目开发一个简单的 CMS 我目前有一个 JSON 字符串 其中包含菜单结构的页面 ID 和父页面 ID 的列表 我现在想将此字符串转换为嵌套或分层列表 有序列表 我尝试过循环查找 但似乎最终得到了过于复杂的子类范围 我正在
  • PHP 中的随机排列对象

    如何在 PHP 中对对象进行排序 我试过shuffle 但这需要一个数组 Warning shuffle expects parameter 1 to be array object given in var www index php o
  • 构建、部署、配置和回滚所需的 Jenkins 指南,保留 5 个版本

    我对詹金斯很陌生 有一定的了解 但需要进一步的指导 我在 Git 存储库上有一个 PHP 应用程序 它使用 Composer 具有资产 具有用户上传的媒体文件 使用 Memcache Redis 具有一些代理 工作人员 并且具有迁移文件 到
  • 是否可以倒回 PDO 结果?

    我正在尝试为 PDO 语句的结果编写一个迭代器 但找不到任何回退到第一行的方法 我想避免调用 fetchAll 和存储所有结果数据的开销 first loop works fine foreach statement as result d
  • 特殊字符和 URL 重写

    我目前正在开发一个应用程序 该应用程序从暴雪社区 API 中提取 JSON 数据并使用 PHP 对其进行解析 一切正常 直到我遇到一个名字中有特殊字符的角色 为了提取角色数据 我需要知道他们的角色名称和他们所在的领域 我将名称和领域通过 U
  • cURL 错误 28:5001 毫秒后解析超时

    我使用 WordPress 最近将我的网站从 cpanel 主机移动到带有 directadmin 面板的 Linux 服务器 转账后立即发现客户在通过EDD插件下载时出现以下错误 cURL 错误 28 5001 毫秒后解析超时 我也遇到了
  • 在 Woocommerce 中设置购物车商品价格后重新计算总计

    通过 set price 方法更改产品价格后 如何更改小计价格 现在在review order php中按旧价格计算总成本 cart php foreach WC gt cart gt get cart as cart item key g

随机推荐