JS 中获取服务器时间的注意点

在经过js获取服务器时间时,遇到了小小的问题,但形成的影响挺大的,因此写出来提醒你们,在获取服务器时间时必定要细心要多测试多验证。html

 

js 中使用如下方法获取服务器时间时要注意两点:ajax

1.xhr.open()方法中,中间的路径最好不要写 “” 或  "/",若是写空,在部分谷歌下获取时间会有问题,因此最好给一个具体的URL。服务器

2.该获取时间方法,能够正确获取服务器时间,若服务器改时区后,此处获取的依然是服务器北京时区下应该显示的时间。async

    而本机电脑获取服务器时间后,也会将该时间转换为本机电脑上时区应该显示的问题。测试

    因此本地改时区后,会将服务器时间改成本地时区对应的时间,这一点必定要注意!!!!!!!!!!!url

能够将获取到的时间统一更改成北京时区时间,或直接改成从后台获取。spa

 

 

这两个方法也是从其余文章中摘抄的,但愿大神能原谅~~~~~~~~~~~~~~~~~~~~.net

//获取服务器时间code

function getServerDate(){htm

var xhr = null;

if(window.XMLHttpRequest){

xhr = new window.XMLHttpRequest();

}else{ // ie

xhr = new ActiveObject("Microsoft")

}

xhr.open("GET", "<%=basePath%>user/toupdpwd?id=26",false)//false不可变

xhr.send(null);

var date = xhr.getResponseHeader("Date");

//转为北京时区时间

//return getBeiJingTime(date)

return new Date(date);

}

 

 

//将时间转为北京时区时间

function getBeiJingTime(date) {

var d = new Date(date);

var timezone = 8; //目标时区时间,东八区

var offset_GMT = d.getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟

var nowDate = d.getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数

var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);

console.log("东8区如今是:" + targetDate);

return targetDate;

}
————————————————
版权声明:本文为CSDN博主「yezi_huan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。
原文连接:https://blog.csdn.net/yezi_yanyuhuan/article/details/96769160

 

JavaScript获取当前时区:

new Date().getTimezoneOffset()
这样获取到的是与0时区的时间差(0时区减去当前所在时区,单位是分钟)
中国标准时间是以东八区为准,比0时区的时间要早8个小时,因此是-480,除以60就是所在时区
时间字符串转成毫秒时,若是咱们不加时区,则系统会默认把当前时区加上,也可自定义时区来转换
(也可先转成毫秒,再加上时间差,再转成时间字符串,这样明显要麻烦多了)

 

————————————————
版权声明:本文为CSDN博主「password-u」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。
原文连接:https://blog.csdn.net/u013992330/article/details/78625855

 

第一种: $.ajax({ type:"OPTIONS", url:"/", complete:function(x){ var date = x.getResponseHeader("Date"); date = new Date(date); } }); 结果:Mon Oct 23 2017 17:26:59 GMT+0800 (中国标准时间) 第二种: function getNowDate(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else{ xhr = new ActiveObject("Microsoft") } xhr.open("GET","/",false); xhr.send(null); var date = xhr.getResponseHeader("Date"); date = new Date(date); return date; } 结果:Mon Oct 23 2017 17:26:59 GMT+0800 (中国标准时间)

原文地址:https://www.cnblogs.com/yexiaocangji/p/7717811.html

 

依赖jQuery

代码:

function getServerDate(){ return new Date($.ajax({async: false}).getResponseHeader("Date")); }
相关文章
相关标签/搜索