首頁 > web前端 > js教程 > JavaScript取得伺服器端時間的方法

JavaScript取得伺服器端時間的方法

高洛峰
發布: 2016-12-03 15:14:17
原創
1713 人瀏覽過

用js做時間校正,取得本機時間,是存在bug的。

使用js也可獲取到伺服器時間,原理是使用 ajax請求,傳回的頭部資訊就含有伺服器端的時間信息,取得到就可以了。以下:

1、依賴jQuery

程式碼:

function getServerDate(){
return new Date($.ajax({async: false}).getResponseHeader("Date"));
}
登入後複製

   

以上函數回傳的就是一個Date對象,注意在使用ajax時必須同步,要不然無法回傳時間日期。

無需填寫請求連結;

如果伺服器時間和本地時間有時差,需要做校正。

2、原生

程式碼:

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()必須使用同步;

如需使用非同步請求,可監聽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: 請求處理中

2: 請求已接收

請求完成,且回應已就緒

失敗狀態,status的值:

200: "OK"

404: 找不到頁


🎜
相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
怎麼實作 JavaScript點與圓的位置關係
來自於 1970-01-01 08:00:00
0
0
0
JavaScript鉤子函數是什麼?
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板