是否有一個JavaScript庫可以處理時區轉換(並考慮到DST規則和這些內容)?我知道有類似的問題,但我所看到的沒有一個似乎有一個真正適合我的問題的答案。處理時區轉換的JavaScript庫
我想在時區A創建一個日期,並能夠操作它(添加日期,時間和類似的東西),然後將其轉換爲另一個時區B.必須有很多人需要這種功能,所以我想應該有一個庫,我沒有找到。
是否有一個JavaScript庫可以處理時區轉換(並考慮到DST規則和這些內容)?我知道有類似的問題,但我所看到的沒有一個似乎有一個真正適合我的問題的答案。處理時區轉換的JavaScript庫
我想在時區A創建一個日期,並能夠操作它(添加日期,時間和類似的東西),然後將其轉換爲另一個時區B.必須有很多人需要這種功能,所以我想應該有一個庫,我沒有找到。
我想你想要這樣的:
https://github.com/mde/timezone-js
解析器確實需要一點點調整方案的去,而不放在一起的人(至少最後我用它的其他庫運行。五幾個月前?),但否則這似乎是一個堅實的圖書館。我已經在兩個非常時區敏感的高流量商業網站上使用它,取得了巨大的成功。
它不能很好地與jquery的日期選擇器和momentjs(也可能是其他庫)一起玩,所以要準備好調整這些庫來使用timezoneJS的日期,或者有一個to/from轉換函數,這樣你可以將timezonejs日期轉換爲「正常」日期,反之亦然,以便輸入/輸出。否則,作爲一個示例,這將需要亞洲/新加坡時區日期,並將其轉換爲美國/洛杉磯日期,同時尊重該年的夏季時間。它使用免費提供的Olson時區文件,並將其解析爲實際上非常準確的內容。
希望這能讓你走上正確的道路。
- 編輯 -
忘記 - 使用它的一些提示。如果你的時間區域有限,我強烈建議通過告訴解析器只使用這些區域 - 這樣你就不必加載所有這些文件的大文件了。另外,我因爲setHours,setMinutes等不符合setHours(0,0,0,0)(它是小時,分鐘,秒,毫秒)的JS「spec」而被踢了一次。這裏有一個增強的請求:https://github.com/mde/timezone-js/issues/48我認爲代碼修改不會很難支持這一點,所以我希望我們能夠早日看到它的合併,或者我可以自己做;)
這個庫看起來像它會爲我做的伎倆。 – Nocklas
你可以看看這篇文章:How to get user timezone using jquery?
看來你不需要任何庫轉換時區。
- EDIT(的人誰是太leasy閱讀其他問題的#2回答)
可以使用standard Date object這樣:
var offset = (new Date).getTimezoneOffset()/60
對於那些誰是太leasy閱讀規格...
這將給你的時間根據世界時:var hour = (new Date).getUTCHours()
這將給你的時間根據當地時間:var hour = (new Date).getHours()
現在瞭解了嗎?
我不明白那篇文章是如何解決我的問題的。如果你這樣做,那麼請賜教。 – Nocklas
看來你可以操縱一個日期,即使有時區支持只需要一個「日期」對象。 只需看看以下內容:http://www.w3schools.com/jsref/jsref_obj_date.asp –
時區(例如America/Los_Angeles)用於日曆應用程序,因爲事件按當地時間安排。無論當天的時區偏移量是多少(改變夏令時規則等),事件發生的當地時間都必須保持不變。對於這些應用程序,我們經常需要將timezone + localtime轉換爲通用時間,反之亦然。 –
MOMENT - 一個5kb的JavaScript日期庫,用於解析,驗證,操作和格式化日期。 (); zone();這是你想要的功能。
你也可以嘗試datejs,但我更喜歡時刻庫,他們有很好的文檔,並保持美味的代碼。
我一定在做錯事,我已經包含了MOMENT像這樣''script type ='text/javascript'src =「http://momentjs.com/downloads/moment-timezone.js」>' 但是我'遇到錯誤:** Uncaught ReferenceError:時刻未定義** –
@NaguibIhab,查看Moment Timezone的文檔。他們列出了你需要的'.js'文件。 –
當你包含所有必需的文件時,我看到這個超過5KB。 –
現在有一個專用的libabry:moment-timezone。 您可以使用online timezone data builder創建自己的tzdata。
就像時刻一樣,它的時區對應是輕的,它的API設計得很好。
'moment-timezone.js'需要'moment.js'和時區數據。 Moment Timezone的文檔列出了您需要的.js文件。 –
是嗎?我同意,如果我知道如何指定Date對象在特定的時區,這應該足以能夠在時區之間進行轉換。但我不知道有這樣做的方法。 – Nocklas