2014-03-04 48 views
0

我需要從一個時間獲得一個時區,日期並不重要,但夏令時是。是否有簡單的時間從給定的時間獲得時區?

類似:

timezone = function("15:00"); 

有沒有一種簡單的方法來做到這一點?

+0

['Date.prototype.getTimezoneOffset'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset)也許? – ajp15243

+0

你會如何確定時區?這是否是爭論時間正確的時區? – Mathias

+0

你在問什麼不合乎邏輯。 –

回答

1

我不認爲你可以從時間的時區,但你可能會從Date.prototype.getTimezoneOffset()

一些幫助可以使用getTimezoneOffset()方法返回時區從UTC, 以分鐘爲單位的偏移,當前語言環境。

實施例:

var x = new Date(); 
var currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60; 
0

一旦您有日期對象,例如new Date(),則可以使用.getTimezoneOffset()獲取日期對象和UTC之間的分鐘數,這是您可以使用的時區信息。

1

否,當然不是。想想看,你正在將15:00傳遞給該函數,可能表示它是3PM。但在什麼時區是下午3點?沒有辦法知道。這就像我說,這是四分之一,沒有說什麼是四分之一的時間。

你可以得到的唯一途徑一個時區的JS是使用the Date object,但只是顯示機器的時區上,你的代碼運行,對TZ沒有什麼「創造」時候你正在處理。

另請注意,夏令時並非全球現象,quite the contrary。 AFAIKT,沒有一個DST始終存在的時區...

1

爲了獲取時區信息,您需要的不僅僅是日期(和偏移量)。你需要一個位置。

Javascript不知道它所在的位置,但它確實知道UTC的當前偏移量。這與時區不同。夏季時間問題對這一關鍵區別造成嚴重破壞。

當處理知道他們的時區和報告日期在特定時區的服務器應用程序時,這出現了問題。

我的經驗法則在這方面相當簡單。

始終使用長或長(64位數)來存儲,傳遞和處理日期時間或間隔,只有在與人交互時才轉換爲日期,日曆或日期時間對象。

相關問題