比方說,用戶在CA,美國拿起一個日期,時間和時區:如何正確跨時區轉換時間?
全球啤酒馬拉松的起點上2013年8月15日上午10:00,UTC-08:00
另一個用戶,在中歐打開顯示此日期和時間的頁面。他不想做時間計算(已經很少有啤酒)。他只是希望看到此日期和時間:
2013年8月15日19:00
鑑於瀏覽器接收的日期和時間信息,在加州進入了用戶:
是有沒有辦法,在javascript,沒有外部網絡服務,要做一個正確的轉換?也就是說,爲了發現上午10點UTC-08:00實際上應該是UTC-07:00上午10點,因爲這是夏令時。
也許我從一開始就錯誤地理解了這一點,但我不想讓輸入的用戶考慮是否應該選擇UTC-08:00(PST)還是UTC-07:00(PDT)。我假設由於CA中的標準時區是PST,所以夏季時人們不會轉而思考PDT。或者他們?!
在中歐,標準的日期是UTC + 01:00,夏令時間爲UTC + 02:00。因此,CA和歐洲之間的差異應該是9小時,除了一年中的兩個時段,其中一個或另一個區域在標準模式和夏令時模式之間切換。
更新:
後一些更多的思考和閱讀的意見,我會非常需要的是這樣的:
var utcOffset = f('2013-08-15T10:00', 'America/Los_Angeles');
// utcOffset == "-07:00"
var utcOffset = f('2013-11-15T10:00', 'America/Los_Angeles');
// utcOffset == "-08:00"
到目前爲止,它看起來像moment.js/timezone plugin,由Guido Preite建議是能夠做到這一點(或多或少)。
任何其他方式,使用瀏覽器API?
check'Moment。js'和'Moment Timezone' http://momentjs.com/timezone/ –
我已經使用了moment.js。時區擴展看起來很有希望。生成的時區文件包含夏令時轉換數據。經過快速測試後,它能夠正確調整輸入的時間。因此,這看起來像瀏覽器不能告訴「嘿,爲了這個日期,你必須使用這個UTC抵消,因爲在那個日期,有夏令時」? – rdamborsky