前端JS获取服务端日期
有时候想获取一下当前时间,如果仅仅用JS的Date对象拿当前时间,相当于取客户端的时间。但客户端的时间并不一定可靠,所以希望能拿服务端的时间,但是如果后台没提供获取时间的接口,那么其实可以用下面的方法去获取。
思路就是通过ajax请求,拿Responce中的Date, 变相的拿出了服务端的时间。
原生JS实现:
getServerTime(){
return new Promise((resolve,reject)=>{
var xhr = new XMLHttpRequest();
if( !xhr ){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("HEAD", location.href, true);
xhr.onreadystatechange=function(){
resolve(xhr.getResponseHeader("Date"))
}
xhr.send(null);
})
}
getServerTime().then(date=>{
let curYear = new Date(date).getFullYear();
})