Maison  >  Article  >  interface Web  >  Explication détaillée de la conversion de l'heure du fuseau horaire JS

Explication détaillée de la conversion de l'heure du fuseau horaire JS

小云云
小云云original
2018-03-21 16:56:234625parcourir


L'heure du serveur de la page est l'heure du huitième district de l'Est. La fonction JS de la page doit comparer l'heure du serveur et l'heure locale de l'utilisateur afin d'être compatible avec l'heure du monde entier. l'heure locale de l'utilisateur doit être convertie en heure du huitième district de l'Est. Cet article partage principalement avec vous l'explication détaillée de la conversion du fuseau horaire JS, dans l'espoir d'aider tout le monde.

Concepts de base

Heure de Greenwich

L'heure locale sur le méridien de Greenwich, ou l'heure de fuseau dans le fuseau horaire zéro (fuseau horaire central) est appelée heure de Greenwich, également C'est ce qu'on appelle l'heure mondiale. (Je n'entrerai pas dans les concepts plus détaillés, nous n'en avons pas besoin ici.) Par exemple, la Chine est dans le huitième district de l'Est et l'heure de Pékin est (GMT+08:00)

Obtenez le décalage horaire entre l'heure locale et l'heure de Greenwich : new Date().getTimezoneOffset(), l'unité est la minute.

Heure moyenne de Greenwich connue, convertir à l'heure locale correcte

Heure locale = heure moyenne de Greenwich - Différence horaire

Connue l'heure locale, convertir à l'heure correspondante Heure moyenne de Greenwich Heure gouvernementale :

Heure moyenne de Greenwich = heure locale + décalage horaire

Connaissant l'heure locale, convertissez-la en d'autres fuseaux horaires

Parce que la différence entre les intervalles de temps est en heures de. Ainsi, après avoir calculé l'heure dans le fuseau horaire 0, soustrayez ou ajoutez simplement les heures correspondantes (la zone Est N est de +N heures, la zone Ouest N est de -N heures). Afin de faciliter le calcul, la zone Est N est enregistrée comme un nombre positif, et la zone Ouest N est enregistrée comme un nombre négatif, c'est-à-dire : heure du fuseau horaire cible = heure locale + décalage horaire + intervalle de fuseau horaire

Exemple : Convertir l'heure locale en heure du huitième district de l'Est

var timezone = 8; //目标时区时间,东八区var offset_GMT = new Date().getTimezoneOffset(); 
// 本地时间和格林威治的时间差,单位为分钟var nowDate = new Date().getTime(); 
// 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
console.log("东2区现在是:" + targetDate);
).getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟var nowDate = new Date().getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
console.log("东2区现在是:" + targetDate);

Recommandations associées :

[Réimpression] Problèmes liés aux anomalies horaires du fuseau horaire PHP

Affichage de l'heure du fuseau horaire mondial Javascript Code_Time et Date

PHP convertit la chaîne GMT+8 de la base de données en heure de fuseau horaire local de l'utilisateur

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