Rumah >hujung hadapan web >tutorial js >JS时区时间转换详解

JS时区时间转换详解

小云云
小云云asal
2018-03-21 16:56:234660semak imbas


页面服务器时间是东八区时间,页面 JS 功能需要对比服务器时间和用户本地时间,为兼容世界各地时间,需要将用户本地时间转换为东八区时间。本文主要和大家分享JS时区时间转换详解,希望能帮助到大家。

基本概念

格林威治时间

格林威治子午线上的地方时,或零时区(中时区)的区时叫做格林威治时间,也叫世界时。(更多详细的概念不说了,这里我们不需要。) 比如我们中国是东八区,北京时间是(GMT+08:00)

获得本地与格林威治时间的时差:new Date().getTimezoneOffset(),单位为分钟。

已知格林威治时间,换算本地正确时间

本地时间 = 格林威治时间 - 时差

已知本地时间,换算对应格林威治时间:

格林威治时间 = 本地时间 + 时差

已知本地时间,换算其他时区的时间

因为时区间的差异是以小时为单位的。所以算出0时区的时间后,再减去或加上相应的小时即可(东N区便+N小时,西N区便-N小时)。 为了方便计算,东N区记做正数,西N区记做负数,即:目标时区时间 = 本地时间 + 时差 + 时区间隔

例子:将本地时间转换为东八区时间

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

相关推荐:

[转载]关于php时区时间异常有关问题

Javascript 世界时区时间显示代码_时间日期

PHP转换数据库的GMT+8的字符串为用户本地时区时间

Atas ialah kandungan terperinci JS时区时间转换详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:three.js浏览全景图的代码Artikel seterusnya:5种js设计模式