Maison >interface Web >js tutoriel >Comment puis-je déterminer si l'heure d'été (DST) est en vigueur ?

Comment puis-je déterminer si l'heure d'été (DST) est en vigueur ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-15 02:10:021098parcourir

How Can I Determine if Daylight Saving Time (DST) is in Effect?

Détermination de l'heure d'été et de son décalage

Pour vérifier si l'heure d'été (DST) est en vigueur, vous pouvez utiliser la propriété getTimezoneOffset, qui renvoie un décalage horaire en minutes par rapport à UTC. La principale différence réside dans la convention :

  • Les zones à l'ouest de UTC (généralement "derrière") affichent des valeurs de décalage positives. Par exemple, Los Angeles afficherait 480 minutes (8 heures positives) à l'heure standard et 420 minutes (7 heures positives) à l'heure d'été.
  • Les zones à l'est de l'UTC affichent des valeurs de décalage négatives.

Pour déterminer l'état DST, comparez le décalage actuel avec le décalage standard :

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();
};

En appelant isDstObserved() sur un objet date, vous pouvez vérifier si l'heure d'été est active.

Exemple :

var today = new Date();
if (today.isDstObserved()) {
    console.log("Daylight saving time is in effect!");
}

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