有关js的date的相关知识

Posted tangjiao_Miya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关js的date的相关知识相关的知识,希望对你有一定的参考价值。

最近做项目,用了new Date().getTime()获取本地时间,但是如果用户篡改了手机时间,程序漏洞明显暴露。所以如果为保证程序的稳健安全性,应该是要使用网络时间的,也就是服务器时间。原理就是使用ajax时间,返回的头部信息里就含有服务端的时间信息,获取就可以了。

1,原生同步

function getServerDate(){
    var xhr = null;
    if(window.XMLHttpRequest){
      xhr = new window.XMLHttpRequest();
    }else{ // ie
      xhr = new ActiveObject("Microsoft")
    }

    xhr.open("GET","/",false)//false不可变
    xhr.send(null);
    var date = xhr.getResponseHeader("Date");
    return new Date(date);
}

getServerDate();

2,原生异步

function getServerDate(){
    var xhr = null;
    if(window.XMLHttpRequest){
      xhr = new window.XMLHttpRequest();
    }else{ // ie
      xhr = new ActiveObject("Microsoft")
    }

    xhr.open("GET","/",true);
    xhr.send(null);
    xhr.onreadystatechange=function(){
        var time,date;
        if(xhr.readyState == 2){
            time = xhr.getResponseHeader("Date");
            date = new Date(time);
            console.log(date);
        }
    }
}

 

【完】

南无释迦牟尼菩萨 南无释迦牟尼菩萨 南无释迦牟尼菩萨

以上是关于有关js的date的相关知识的主要内容,如果未能解决你的问题,请参考以下文章