4

我只需要添加更改北美时区的功能。共有六个时区,包括夏威夷和阿拉斯加。

我在美国东部,所以我的时区是东部。在为我的位置选择时区时,我可以选择纽约、芝加哥和其他几个。我不确定为什么有这么多不同的时区都解析为相同的偏移量;除非因为 DST。

我基本上要寻找的是这六个区域:

  • 美东时间
  • 科技委
  • MST
  • 太平洋标准时间
  • 农业知识与科技
  • 高铁

有人能告诉我为什么有这么多不同的时区可以从相同的偏移量中选择吗?

4

1 回答 1

7

PHP 时区列表是从 PECL 时区数据库中提取的。PECL 时区数据库来自“Olson”数据库,由 IANA 组织维护。

在 IANA 网站上,他们对时区数据库的维护做了以下说明:

时区数据库(通常称为 tz 或 zoneinfo)包含代表全球许多代表性位置的本地时间历史的代码和数据。它会定期更新,以反映政治机构对时区边界、UTC 偏移量和夏令时规则所做的更改。其管理程序记录在 BCP 175:维护时区数据库的程序中。

由于并非所有州都使用夏令时(例如,亚利桑那州、夏威夷、波多黎各不使用夏令时),时区的话题变得更加复杂。

因此,从中可以得出的结论是,特定城市的时区基于其区域边界、夏令时规则和其他政治因素。因此,例如,仅仅因为某个城市恰好位于西部并不意味着它就一定是 PST。

此外,通过手动将西部地区设置为 PST 在技术上比设置其实际的国家/城市时区标识符更难维护,因此,如果它们的偏移量在未来发生变化,您的应用程序将继续设置正确的时间。

于 2013-10-19T16:25:24.017 回答