格林威治时间
格林威治子午线上的地方时,或零时区(中时区)的区时叫做格林威治时间,也叫世界时。(更多详细的概念不说了,这里我们不需要。) 比如我们中国是东八区,北京时间是(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();
var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
console.log("东8区现在是:" + targetDate);
业务场景:页面服务器时间是东八区时间,页面 JS 功能需要对比服务器时间和用户本地时间,为兼容世界各地时间,需要将用户本地时间转换为东八区时间。基本概念格林威治时间格林威治子午线上的地方时,或零时区(中时区)的区时叫做格林威治时间,也叫世界时。(更多详细的概念不说了,这里我们不需要。) 比如我们中国是东八区,北京时间是(GMT+08:00)获得本地与格林威治时间的时差:...
该资源适用于不同
时区
的用户访问网站
时
,通过jquery插件将服务器
时间
转为用户本地
时间
。
演示:http://www.westyu.com/tools/local_time.php
只适合当网页加载完后进行
时间
的
转换
,如果需要ajax返回数据
时间
进行
转换
的,可以PM我,我会告诉大家方法。
new Date()
时间
与服务器系统
时间
不
一致
问题原因:
在正常
时区
GMT+8下安装jdk后系统改为GMT+3
时区
,那么jvm
时区
会为GMT+8,需要进行修改参数
修改方法:
Linux直接执行命令
export TZ=“Asia/Shanghai”
export TZ=“Asia/Riyadh”
设置
时区
,重启服务,查询,成功
标准化日期字符串中的
时区
,以使其可
转换
为JavaScript日期。
const ntz = require ( 'ntz' )
const original = 'Sunday, July 24, 19:32:00 CEST 2016'
console . log ( new Date ( original ) ) // => Invalid Date
const normalized = ntz ( original )
console . log ( new Date ( normalized ) ) // => 2016-07-24T17:32:00.000Z
npm install ntz
用匹配的UTC偏移量替换
时区
缩写(如“ CDT”)如果字符串中未遇到已知的
时区
,则返回原始字符串。
s 原始日期/
时间
字符串
返回
时区
缩写已替换的
麻省理工学
1.node
js
通过new Date()
获取
本机当前
时间
后进行字符串格式化,在我本机windows
电脑
上运行返回结果正常
2.将代码部署到服务器(centos)上后发现
获取
时间
是相差八小
时
的
3.服务器可能
时区
设置不在北京
时间
(东八区)
4.使用moment插件
时
只需要强制当前
获取
的
时间
为东八区
时间
即可。
//强制
获取
东八区当前
时间
let date=moment(new Date()).utcOffset(8).format('YYYY-MM-DD HH:mm:ss');
* method:
最近遇到了
时区
设置的问题
在Node
js
中,取当前
时间
(GMT格式)可以使用Datevar GMTDate = new Date();//Sun Mar 06 2016 20:42:44 GMT-0500 (GMT)但有
时
候server的
时间
要求是GreenWich
时间
,就是零
时区
可以这样设置process.env.TZ = 'Europe/London';//可以切换到任意
时区
var da
处理 node
js
mysql 从数据库
获取
时间
不准确的问题
一、问题描述
我有一个国外的服务器,处于 America/California,当我往里面存
时间
再用 node
js
mysql 取出
时
,
时间
就变了,成了 UTC
时间
,问题并不是
时区
变了,而是
时间
变了,原因是 服务器、数据库 的
时区
并不是 +08:00 的
时区
。所以当你向其存入东八区的
时间
时
,数据库认为是数据库
时区
的
时间
,也就是 -08:00 的
时间
,所以这样在取出的
时
候,就已经变了16:00 个小
时
。
我目前的
时间
是上午 04-27 9:47,
js
中使用以下方法
获取
服务器
时间
时
要注意两点:
1.xhr.open()方法中,中间的路径最好不要写 “” 或 "/",如果写空,在部分谷歌下
获取
时间
会有问题,所以最好给一个具体的URL。
2.该
获取
时间
方法,可以正确
获取
服务器
时间
,若服务器改
时区
后,...
node 引入moment模块,在服务器部署后,出现
时间
不对,相差8小
时
原因:服务器可能
时区
设置不在北京
时间
(即东八区),所以moment 只要强制设置为东八区即可
解决方案:
moment().utc().zone(-8).format()
// "2020-01-14T20:48:00+08:00"
zone 方法已经不推荐,可以使用 utcOffset
moment().utcOff...
这两天写了张网页,主要功能就是
获取
不同
时区
时间
以及调用本地软件或文件的方法。
具体
获取
不同
时区
时间
的方法是,先是从本地得到
时间
,然后得到它和标准
时间
的偏差,从而得到标准
时间
,然后再从标准
时间
得到所需的
时区
的
时间
。
调用本地软件或打开本地文件夹的方法是用Javascript调用WScript.Shell,从而达到目的。对于WScript.Shell的了解不深入,接下来会找点资料看。
我把上面两个
近段
时间
,由于某种原因我一直在研究
js
不同地区不同
时区
之间的
时间
换算。北京
时间
早上9点,在其他地区可能已经是夜晚了。
我们都知道,国内统一使用的都是北京
时间
,但在国外,不仅因
时区
不同而有
时间
差异,同一地区还存在夏令
时
冬令
时
的
时间
差异,如果程序上涉及
时间
上的计算,要千万小心了。
一、将当前所在地区
时间
转换
为UTC
时间
二、将某一固定
时间
转换
为UTC
时间
三、将UTC
时间
转换
为当前所在地区
时间
四、两...
new Date().getTimezoneOffset()
这样
获取
到的是与0
时区
的
时间
差(0
时区
减去当前所在
时区
,单位是分钟)
中国标准
时间
是以东八区为准,比0
时区
的
时间
要早8个小
时
,所以是-480,除以60就是所在
时区
时间
字符串转成毫秒
时
,如果我们不加
时区
,则系统会默认把当前
时区
加上,也可自定义
时区
来
转换
(也可先转成毫秒,再加上
时间
差
// 输入指定
时区
和
时间
,
转换
为指定
时区
的
时间
戳
function convertToTimestamp(time, timezone) {
const mTime = moment.tz(time, timezone);
return mTime.unix(); // 返回
时间
戳
// 示例
const time = '2022-01-01 12:00:00';
const timezone1 = 'America/New_York';
const timezone2 = 'Asia/Shanghai';
const timestamp1 = convertToTimestamp(time, timezone1);
const timestamp2 = convertToTimestamp(time, timezone2);
console.log('timestamp1:', timestamp1); // 1641064000
console.log('timestamp2:', timestamp2); // 1641038400
以上代码将输入的
时间
和
时区
通过Moment.
js
库
转换
为指定
时区
的
时间
戳,可以在Node.
js
环境下运行。