JS获取服务器时间


前端

零度逍遥

2015-05-22 23:32:33

一直以来,我们都希望用js获取准确的时间,也就是北京时间,当毕竟js是客户端语言,只能获取到本地的时间,而这个在我们做项目的时候往往是不准确的,我们无法保证用户的电脑时间都是准确的,所以我们一般用服务器端语言来获取服务器的时间。

虽然,服务器端语言获取时间很轻松,但是对于前端开发人员来说没有任何作用,他们需要用JS获取准确的时间,下面就介绍一种使用JS获取服务器时间的方法:

在后台程序把页面元素传递给浏览器的时候会有一个Response Header,里面有一个字段Date,标记的就是服务器响应的时间,而我们只要想办法把这个时间拿到就行了。

 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 ){ 
		var str = xhr.getResponseHeader("Date"); //获取Response Header里面的Date 
                var date = new Date(str).getTime(); //把Date转换成时间对象
		alert(date); //输出时间戳
	}  
}  
xhr.send(null); 

如果你使用JQ,可以这样

$.ajax({
	 url: '',
	type: 'get',
	success: function (data, status, xhr) {             
		 var str = xhr.getResponseHeader('Date');  //获取Response Header里面的Date
                 var date = new Date(str).getTime(); //把Date转换成时间对象
		 alert(date);  //输出时间戳
	  }
});

这样的方法获取的服务器时间还是比较靠谱的。