JavaScript 中的DST 偵測與偏移量計算
給定的程式碼計算兩個日期之間的時差,將其分解為年、日、小時、分鐘和秒。但是,夏令時 (DST) 可能會導致差異。本文深入探討判斷夏令時是否生效並計算其偏移量的機制。
檢查夏令時
關鍵在於 getTimezoneOffset() 方法。與 DST 相比,它在標準時間期間傳回更大的值。透過確定標準時間期間的預期偏移量,程式碼將其與給定日期的偏移量進行比較。如果偏移量較小,則表示 DST。
getTimezoneOffset 注意事項
請注意,getTimezoneOffset() 對於UTC 以西的時區返回正值,通常表示為負小時(例如,洛杉磯:UTC–標準時間 對於UTC 標準時間8 小時)。相反,它會傳回東半球的負值(例如,雪梨:冬季為 UTC 10 點)。
程式碼範例
要使用DST 功能擴充日期:
Date.prototype.stdTimezoneOffset = function () { var jan = new Date(this.getFullYear(), 0, 1); var jul = new Date(this.getFullYear(), 6, 1); return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); } Date.prototype.isDstObserved = function () { return this.getTimezoneOffset() < this.stdTimezoneOffset(); }
用法:
var today = new Date(); if (today.isDstObserved()) { alert ("Daylight saving time!"); }
以上是夏令時有效嗎?用於偵測和計算 DST 偏移量的 JavaScript 方法。的詳細內容。更多資訊請關注PHP中文網其他相關文章!