JavaScript 中的DST 偵測:檢查準確日期操作的狀態
在精確時間計算的情況下,例如時間顯示或日期操作,至關重要,必須考慮夏令時(DST)。如果不及時考慮,這種季節性調整可能會導致時間計算出現差異。
為了解決此問題,我們開發了一個 JavaScript 程式碼片段,用於檢查 DST 在給定時刻是否有效。核心邏輯取決於 getTimezoneOffset 在標準時間期間傳回比 DST 更高的值。透過確定標準時間期間的預期偏移量並將其與給定日期的偏移量進行比較,可以確定是否正在使用標準時間或夏令時。
值得注意的是,getTimezoneOffset 對於以西的時區傳回正值UTC 和 UTC 以東地區的負值。此外,偏移量通常以小時為單位表示,而 getTimezoneOffset 則傳回以分鐘為單位的偏移量。例如,洛杉磯在標準時間期間為 UTC-8 點,在 DST 期間為 UTC-7 點。 12 月,getTimezoneOffset 將為洛杉磯產生 480(正 480 分鐘)。
以下 JavaScript 程式碼詳細說明了此概念:
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 目前是否有效給定日期與標準時間預期之間的 getTimezoneOffset 差異。透過利用這種邏輯,開發人員可以精確計算日期和時間,同時考慮夏令時的影響。
以上是夏令時有效嗎?在 JavaScript 中準確檢測 DST。的詳細內容。更多資訊請關注PHP中文網其他相關文章!