Détermination de l'état de l'heure d'été (DST)
En JavaScript, le calcul précis des différences horaires peut être affecté par l'heure d'été, qui ajuste l'heure locale en une heure. Pour gérer cela, il est essentiel de déterminer si l'heure d'été est en vigueur.
Vérification de l'état de l'heure d'été
L'objet Date fournit une solution via getTimezoneOffset, qui renvoie la différence entre les valeurs locales heure et UTC en minutes. Cependant, notez que getTimezoneOffset renvoie des valeurs positives pour les fuseaux horaires à l'ouest de UTC (par exemple, Los Angeles) et des valeurs négatives pour ceux à l'est de UTC (par exemple, Sydney).
Pour tenir compte de cela, l'extrait de code suivant peut être utilisé :
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(); };
La fonction stdTimezoneOffset renvoie la valeur de décalage la plus élevée entre janvier et juillet, représentant efficacement le décalage horaire standard. La fonction isDstObserved compare ensuite le décalage actuel avec ce décalage standard. Si le décalage actuel est inférieur, cela indique que l'heure d'été est utilisée.
Exemple d'utilisation
var today = new Date(); if (today.isDstObserved()) { alert("Daylight saving time!"); }
Remarque : Dates de début et de fin de l'heure d'été varient selon les régions, il est donc recommandé de consulter des sources locales pour des informations précises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!