Maison >interface Web >js tutoriel >Comment déterminer si l'heure d'été est actuellement en vigueur en JavaScript ?

Comment déterminer si l'heure d'été est actuellement en vigueur en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 15:28:03750parcourir

How to Determine if Daylight Saving Time Is Currently in Effect in JavaScript?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn