DST-Erkennung und Offset-Berechnung in JavaScript
Der angegebene Code berechnet den Zeitunterschied zwischen zwei Daten und gliedert ihn in Jahre, Tage, Stunden, Minuten und Sekunden. Allerdings kann es aufgrund der Sommerzeit (DST) zu Abweichungen kommen. Dieser Artikel befasst sich mit dem Mechanismus zur Bestimmung, ob die Sommerzeit gültig ist, und zur Berechnung ihres Offsets.
Prüfung auf Sommerzeit
Der Schlüssel liegt in der Methode getTimezoneOffset(). Während der Standardzeit wird im Vergleich zur Sommerzeit ein größerer Wert zurückgegeben. Durch die Bestimmung des erwarteten Offsets während der Standardzeit vergleicht der Code ihn mit dem Offset für das angegebene Datum. Wenn der Offset kleiner ist, zeigt dies die Sommerzeit an.
Überlegungen zu getTimezoneOffset
Beachten Sie, dass getTimezoneOffset() positive Werte für Zeitzonen westlich von UTC zurückgibt, die normalerweise als dargestellt werden negative Stunden (z. B. Los Angeles: UTC–8h in Standardzeit). Im Gegensatz dazu werden negative Werte für die östliche Hemisphäre zurückgegeben (z. B. Sydney: UTC 10 Uhr im Winter).
Codebeispiel
So erweitern Sie das Datum mit der DST-Funktionalität:
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(); }
Verwendung:
var today = new Date(); if (today.isDstObserved()) { alert ("Daylight saving time!"); }
Durch die Integration dieser Funktionalität kann Ihr Code Zeitunterschiede genau berechnen, sogar während der Sommerzeitübergänge.
Das obige ist der detaillierte Inhalt vonIst Sommerzeit in Kraft? Ein JavaScript-Ansatz zur Erkennung und Berechnung des DST-Offsets.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!