有关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的相关知识的主要内容,如果未能解决你的问题,请参考以下文章

AJAX相关JS代码片段和部分浏览器模型

R 知识片段

R 知识片段

有关闭包的相关知识点

带有神秘附加字符的 Javascript Date getTime() 代码片段

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段