前端能获得的时间有两种:客户端与服务器的时间.
如何获取服务器当前时间,主要是处理客户端本地机器时间错误问题。
方法一:
原理:获取服务器返回的头部信息中的Date属性
由于得到的是GMT(格林尼治时间)
所以要转换成东八区的时间
这个就是响应服务器的当前时间。
var date = new Date($.ajax({async: false}).getResponseHeader("Date"));
var bom= date + (3600000 * 8);
var time = new Date(bom);
方法二:
原理:在 HTTP 头里带一个Date的头部信息,用Ajax直接取头部信息里的Date就可获取服务器时间
-------------原生js写法-------------
var xhr = new XMLHttpRequest();
if( !xhr ){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("HEAD",location.href,true);
xhr.onreadystatechange=function(){
if( xhr.readyState == 4 && xhr.status == 200 ){
alert(xhr.getResponseHeader("Date"));
}
}
xhr.send(null);
-------------jquery写法-------------
var time;
$.ajax({type:'HEAD', async: true})
.success(function(data, status, xhr){
time=xhr.getResponseHeader('Date');
});
方法三:
在script中加一个 runat="server" 属性,表示是在服务器环境下,即如下:
<Script runat="server" language="javascript"></script>