在前端中,对于严格的时间计算,需要用到服务器时间,比如购买商品的倒计时。如果读取客户端时间,这个时间是不准确的。
可以通过ajax请求,一般常用的请求方式有get和post,问题是采用这种方式请求会让服务器处理有延时,比如请求一个php页面,php返回时间。
一种好的解决办法是采用head方式请求本页面,通过响应头拿到时间,head方式只会请求文件头,不会返回文件内容,因此缩短了服务器时间。
代码如下:
function getSeverDateTime(){
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhr.open("HEAD", window.location.href, false);
xhr.send();
var d= new Date(xhr.getResponseHeader("Date"));
return d;
}