1. 程式人生 > 實用技巧 >js獲取伺服器時間

js獲取伺服器時間

頻繁的需要獲取當前時間進行一些邏輯處理,但是用js獲取本機時間,是存在bug的,那麼就需要我們使用伺服器時間,js可獲取到伺服器時間,原理是使用 ajax請求,返回的頭部資訊就含有伺服器端的時間資訊,獲取到就可以了。

function loadXMLDoc(){
    var xhr = null;
        if(window.XMLHttpRequest){
          xhr = new window.XMLHttpRequest();
        }else{ // ie
          xhr = new ActiveObject("Microsoft")
        }
    
        xhr.open(
"GET","/ntsc.ac.cn",false)//false不可變 xhr.send(null); var date = xhr.getResponseHeader("Date");return new Date(date); }

同樣返回的是一個Date物件,xhr.open()必須使用同步;
無需填寫請求連結;

open,send,和getResponseHeader 必須按序編寫。

如需使用非同步請求,可監聽onreadystatechange狀態來做不同的操作。

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有四種狀態,方便做不同處理:

0: 請求未初始化;
1: 伺服器連線已建立;
2: 請求已接收;
3: 請求處理中
4: 請求已完成,且響應已就緒
失敗狀態,status的值:
200: "OK"
404: 未找到頁面

動態顯示

window.setInterval(loadXMLDoc, 1000);

新增一個連結:https://www.jianshu.com/p/3d1855eee998?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation