我想根據用戶的區域設置顯示時區代碼(如BST或GMT)。但是,在每個瀏覽器中,它位於新Date()。toLocaleString()和某些瀏覽器(如Opera)中的不同位置,因此根本不可用。如何獲取BST/GMT/CET等時區代碼?
它看起來像解決方案將獲得時區代碼的數據庫或結構對時區偏移,但可以有多個匹配(例如BST == GMT),我什至不能找到這樣的列表。
這是否意味着它無法完成?
我想根據用戶的區域設置顯示時區代碼(如BST或GMT)。但是,在每個瀏覽器中,它位於新Date()。toLocaleString()和某些瀏覽器(如Opera)中的不同位置,因此根本不可用。如何獲取BST/GMT/CET等時區代碼?
它看起來像解決方案將獲得時區代碼的數據庫或結構對時區偏移,但可以有多個匹配(例如BST == GMT),我什至不能找到這樣的列表。
這是否意味着它無法完成?
您必須在代碼中手動定義時區差異。這很複雜,因爲GMT時間與UTC(祖魯語)時間不同。格林威治標準時間包括夏令時更改,而UTC沒有夏令時,並且時區表示相同。
更令人困惑的是,並非所有的政治區域都定義他們的時區因示例小時數而異。印度是UTC + 5.5小時,阿富汗UTC + 4.5小時。請注意,由於這些國家/地區沒有遵守夏令時,所以以UTC爲準,而不是以GMT爲基準。太平洋西南部的一些小島國可能在四分之一小時內有所不同。
然後一些政治時區定義具有內部分化。亞利桑那州通常被認爲是在美國太平洋時區,格林威治標準時間-8小時,但它不遵守夏令時,所以半年它在美國山區時區亞利桑那州真的是UTC - 8。
With all對於時區有數百個定義的混淆,並且隨着政治邊界的變化,其中一些定義會發生變化。我只是說,擰它並使用用戶的時鐘時間或調整爲UTC時間,通過動態調整服務器中JavaScript的常量,以反映用戶請求頁面時代表UTC時間的已知值。
關於GMT的說法有誤(GMT沒有DST),詳情請參閱http://en.wikipedia.org/wiki/GMT。其他信息雖然有用。 – fvu 2009-11-09 16:01:02
所以你基本上同意,它不能由它的外觀來完成。 – Philluminati 2009-11-09 16:33:42