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

JS时区时间转换详解

小云云
Lepaskan: 2018-03-21 16:56:23
asal
4736 orang telah melayarinya


页面服务器时间是东八区时间,页面 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);
Salin selepas log masuk
).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);
Salin selepas log masuk

相关推荐:

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

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

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

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

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan