【问题标题】:Convert deprecated/PHP's 'other time zones' to standardized time zones将弃用/PHP 的“其他时区”转换为标准化时区
【发布时间】:2020-09-30 10:48:02
【问题描述】:

https://www.php.net/timezones.others 的 PHP 手册说除了UTC 之外,不要使用该页面上列出的任何时区,但是该页面提供转换图。我的搜索只产生了不相关/通用的结果。

是否存在将弃用时区转换为标准化时区的现有列表,可用于在我的数据库中创建适当的关联?

【问题讨论】:

  • 根据您描述的问题,我找到了一篇关于此的文章。检查这个livelywebdesign.com/blog/2013/03/…
  • @ARVINDIT - 该链接中的方法假定时区有一个固定的偏移量,这是不正确的,并且会导致严重错误的映射。请参阅the timezone tag wiki 中的“时区!= 偏移量”。

标签: php timezone


【解决方案1】:

PHP 使用IANA TZDB time zones

PHP 文档的“其他”页面中列出的一些是 TZDB 链接到它们的规范区域。例如:Africa/Asmera 是指向Africa/Nairobi 的链接。虽然后者是首选,但使用前者并没有错。他们都将继续工作,并继续代表in the source data

该页面上的其他内容是“行政区域”。例如,Etc/GMT+11,其符号有意反转,表示 UTC-11 的固定偏移量。这些是有效的,但仅应在特殊情况下使用,例如用于不在领海内的海上船舶。陆地(和领海)上的所有位置都应使用基于位置的区域名称。

这些页面上的其他内容是旧格式,应该不鼓励使用,但仍然是有效链接。例如,Cuba 是指向America/Havana 的有效链接,但不应使用,因为它不是区域/位置格式。

最后,该页面上的某些区域应被视为已弃用,但没有指向规范区域的链接。例如,EST5EDT 是一个可能已用于“东部时间”的区域 - 但不能干净地映射到像 America/New_York 这样的区域,因为它没有纽约发生的任何历史变化,并且有东部时区的其他条目与纽约的历史不同

简而言之,您可以通过TZDB sources 中的链接将这些区域中的一些映射到它们的首选表示,但有些不能映射,有些则不应该。

【讨论】:

  • 看起来不错,但我认为支持这个项目需要大约三周的专注工作。在进行初步研究时,我确实遇到了时区数据库。这看起来很可靠,所以我现在会接受它。我当然愿意接受任何答案或更新,因为我知道时间本身不是一个静态话题。谢谢!
猜你喜欢
  • 2016-12-28
  • 2014-08-25
  • 1970-01-01
  • 2021-10-16
  • 2021-03-15
  • 2011-08-30
  • 2021-01-16
  • 1970-01-01
相关资源
最近更新 更多