Maison > Article > interface Web > Explication détaillée de la conversion de l'heure du fuseau horaire JS
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.
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 locale = heure moyenne de Greenwich - Différence horaire
Heure moyenne de Greenwich = heure locale + décalage horaire
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
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
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!