確定夏令時(DST) 狀態
在JavaScript 中,準確計算時差可能會受到DST 的影響,DST 會透過以下方式調整本地時間一小時。要處理這個問題,必須確定 DST 是否生效。
檢查 DST 狀態
Date 物件透過 getTimezoneOffset 提供了解決方案,它會傳回本地與本地時間之間的差異時間和 UTC(以分鐘為單位)。但是,請注意,getTimezoneOffset 對於 UTC 以西的時區(例如,洛杉磯)傳回正值,對於 UTC 以東的時區(例如,雪梨)傳回負值。
為了解釋這一點,以下程式碼片段可以使用:
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(); };
stdTimezoneOffset 函數傳回一月和七月之間較大的偏移值,有效地表示標準時間偏移。然後 isDstObserved 函數將當前偏移量與該標準偏移量進行比較。如果目前偏移量較小,則表示正在使用 DST。
使用範例
var today = new Date(); if (today.isDstObserved()) { alert("Daylight saving time!"); }
注意: DST 開始和結束日期因地區而異,因此建議諮詢當地消息來源以獲取準確資訊.
以上是如何在 JavaScript 中確定夏令時目前是否有效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!