DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript獲取服務器端時間的方法
JavaScript獲取服務器端時間的方法
編輯:關於JavaScript     

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

無需填寫請求鏈接;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: 未找到頁面

以上所述是小編給大家介紹的JavaScript獲取服務器端時間的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved