2015-04-02 353 views
-4

我想獲取系統可用時區的瀏覽器特定時區名稱(不同瀏覽器顯示每種系統設置的不同文本)。我在編寫console.error(new Date())時需要「()」中時區的確切字符串,但不僅僅是我當前的設置,而不需要每次更改我的操作系統設置並重新啓動瀏覽器。如何獲取瀏覽器的時區名稱列表

AFAIK js庫使用自己的名稱列表來解決這個問題,但結果名稱與瀏覽器時區名稱不同。我需要這個名字,因爲瀏覽器會寫它。

謝謝。

+1

JavaScript沒有時區的概念 - 只有偏移號碼。您必須使用JavaScript庫(或您自己的硬編碼值)將每個偏移號碼轉換爲一些文本(例如「0 = GMT」)。請參閱http://joshowens.me/dealing-with-timezones-in-javascript/ – 2015-04-02 13:46:55

+0

由於我可以在顯示給定日期時獲取時區名稱(我知道它來自瀏覽器,Chrome和Firefox返回不同的名稱),因此我認爲有可能獲得瀏覽器列表 - 它轉換系統時區的方式。 – RoyBS 2015-04-02 13:49:45

回答

1

ECMA-262, Edition 5.1當前版本的腳本語言俗稱javascript,當時我寫這個答案)沒有API來獲取時區列表。

我不知道有任何瀏覽器在JavaScript中有這樣的API可用。

我甚至不確定任何瀏覽器內部都有一個時區列表。瀏覽器可能會從操作系統獲取當前時區的名稱。

使用Date.prototype.getTimezoneOffset獲取用戶當前語言環境的UTC分鐘偏移量。某些瀏覽器(Crome)使用Date.prototype.toString()顯示當前時區的名稱,但有些瀏覽器不支持(Firefox)。

+0

謝謝你的回答。 Firefox v36顯示的名稱,但我想我不能指望它在舊版本中。我無法驗證名稱是從系統中獲取,但如果是這樣,它足夠我。謝謝。 – RoyBS 2015-04-02 14:32:25

+0

我在windows上運行Firefox V36.0.4並且只獲得「Thu Apr 02 2015 14:07:06 GMT-0235」 – some 2015-04-02 16:52:40

+0

嘗試新的日期()。toString() – RoyBS 2015-04-05 06:25:13