前端获取服务器时间

js获取服务器时间

  • 最近新做了一个项目,频繁的须要获取当前时间进行一些逻辑处理,可是用js获取本机时间,是存在bug的,那么就须要咱们使用服务器时间,js可获取到服务器时间,原理是使用 ajax请求,返回的头部信息就含有服务器端的时间信息,获取到就能够了。
var req = new XMLHttpRequest();
    req.open('GET', location, false);
    req.send(null);
    console.log(req.getResponseHeader('Date'));

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);
    }

一样返回的是一个Date对象,xhr.open()必须使用同步;
无需填写请求连接;open,send,和getResponseHeader 必须按序编写。
如需使用异步请求,可监听onreadystatechange状态来作不一样的操做。ajax

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);
            }
        }
    }

使用异步不是很方便返回时间。
这里的readyState有四种状态,方便作不一样处理:服务器

  1. 0: 请求未初始化;
  2. 1: 服务器链接已创建;
  3. 2: 请求已接收;
  4. 3: 请求处理中
  5. 4: 请求已完成,且响应已就绪

失败状态,status的值:
200: "OK"
404: 未找到页面异步

相关文章
相关标签/搜索