2013-10-19 15 views
4

我需要添加只能更改北美時區的功能。總共有六個時區,包括夏威夷和阿拉斯加。爲什麼會有多個時區選項全部解析爲EST?

我在美國東部,所以我的時區是東部。在爲我的位置選擇時區時,我可以選擇紐約,芝加哥和其他一些地區。我不知道爲什麼有這麼多不同的時區,都解決了相同的偏移量;除非因爲DST。

所有我基本上找的這六個區域:

  • EST
  • CST
  • MST
  • PST
  • AKST
  • HST

燦有人告訴我w hy有很多不同的時區可供選擇,以解決相同的偏移問題?

+0

我一定會希望,如果我選擇芝加哥作爲我的位置,那我並沒有在東部時區最終成爲中部。 – Schleis

+0

@Schleis,嗯..芝加哥什麼時候允許電腦進入他們的城市? – NaN

+1

該列表基於IANA時區數據庫(http://www.iana.org/time-zones)。 –

回答

7

PHP時區列表是從PECL時區數據庫中提取的。 PECL時區數據庫來自IANA組織維護的「Olson」數據庫。

On the IANA website, they state the following about their upkeep of the timezone database:

時區數據庫(通常稱爲TZ或時區信息)中包含的代碼和數據 代表的本地時間的歷史世界各地的許多代表 位置。它會定期更新以反映 由政治團體對時區邊界,UTC偏移, 和夏時制規則所做的更改。其管理程序記錄在 BCP 175:維護時區數據庫的過程中。

由於並非所有州都使用夏令時(亞利桑那州,夏威夷州,波多黎各州,例如不使用夏令時),時區的主題更加複雜。

因此,從這個結論可以得出結論,特定城市的時區是基於其區域邊界,夏令時規則和其他政治因素。因此,僅僅因爲一些城市碰巧身處西方,並不意味着它保證是PST,例如。

此外,通過手動將西部地區設置爲太平洋標準時間在技術上比設置其實際的國家/城市時區標識符的可維護性要低,這樣,如果它們的偏移將來發生變化,應用程序將繼續設置正確的時間。

+1

優秀的答案克里斯蒂安!謝謝,這解釋了我需要知道的一切。我希望擺脫必須建立一個時區表,但根據你的答案,看起來我不得不這樣做。 – NaN

+0

非常歡迎你,@NaN – Kristian

+1

@NaN - 克里斯蒂安的答案是現貨。但我不明白這會如何導致你認爲你需要製作一個時區表。你絕對應該*不*這樣做。您可能想知道的關於時區的一切都在IANA數據庫中。 –

相關問題