2012-05-02 24 views

回答

-1

容易的部分是佔時區。您可以通過從日期減去時區* 60 * 60秒找到默認(+0)時區,然後將新時區* 60 * 60添加到日期。

然後,它只是一個讓你想要的時候,使用的物質:

d = new Date(year, month, day, hours, minutes, seconds, milliseconds) 
+0

是的,這是很容易的部分:)夏令時怎麼樣? – Mark

3

JavaScript沒有內置的語言(如可通過細讀the spec可以看到)一個時區數據庫。相反,它只有「本地時間」和「UTC時間」的概念,只有一個本地時區。

有可能有一個瀏覽器API來獲取時區數據庫,但我從來沒有聽說過它。有一些第三方項目與這些數據庫接口;快速搜索變成了timezone-js

1

我懷疑是否有任何算法可以給你你想要的。世界各國往往選擇不遵循標準時區規則。更糟糕的是DST的轉換日期不同。

有3個,我能想到的檢查來源:

傑普森,波音公司的子公司,是用於航空導航信息,對整個世界的主要民用供應商。我剛剛檢查了我的舊傑普森手冊,說明我在13年前退休時停止了每週更新。它爲世界上所有主要機場提供時區以及DST變化的日期。去聯繫信息here。我懷疑現在它可以通過電子方式獲得,但傑普森不會免費贈送任何東西。

國際民航組織,國際民用航空組織(現在我認爲是聯合國的一部分)我是否會保留這些信息,但我對夏令時數據並不確定。我相信他們的數據可以免費或收取少量費用。

國際航空運輸協會,國際航空運輸協會也可能維護這些數據。

我認爲最後兩個組織可能會對包含該數據的URL的簡單請求做出響應,如果他們知道這個數據的話。

此外,如果能得到任何運營國際航班的航空公司調度員,他們將不得不提供該信息。

此外,請檢查this和其他人,如果您使用Google「航空公司時區和dst數據」,則會看到其他人。

相關問題