JS 中獲取服務器時間的注意點

在經過js獲取服務器時間時,遇到了小小的問題,但形成的影響挺大的,因此寫出來提醒你們,在獲取服務器時間時必定要細心要多測試多驗證。html

 

js 中使用如下方法獲取服務器時間時要注意兩點:ajax

1.xhr.open()方法中,中間的路徑最好不要寫 「」 或  "/",若是寫空,在部分谷歌下獲取時間會有問題,因此最好給一個具體的URL。服務器

2.該獲取時間方法,能夠正確獲取服務器時間,若服務器改時區後,此處獲取的依然是服務器北京時區下應該顯示的時間。async

    而本機電腦獲取服務器時間後,也會將該時間轉換爲本機電腦上時區應該顯示的問題。測試

    因此本地改時區後,會將服務器時間改成本地時區對應的時間,這一點必定要注意!!!!!!!!!!!url

能夠將獲取到的時間統一更改成北京時區時間,或直接改成從後臺獲取。spa

 

 

這兩個方法也是從其餘文章中摘抄的,但願大神能原諒~~~~~~~~~~~~~~~~~~~~.net

//獲取服務器時間code

function getServerDate(){htm

var xhr = null;

if(window.XMLHttpRequest){

xhr = new window.XMLHttpRequest();

}else{ // ie

xhr = new ActiveObject("Microsoft")

}

xhr.open("GET", "<%=basePath%>user/toupdpwd?id=26",false)//false不可變

xhr.send(null);

var date = xhr.getResponseHeader("Date");

//轉爲北京時區時間

//return getBeiJingTime(date)

return new Date(date);

}

 

 

//將時間轉爲北京時區時間

function getBeiJingTime(date) {

var d = new Date(date);

var timezone = 8; //目標時區時間,東八區

var offset_GMT = d.getTimezoneOffset(); // 本地時間和格林威治的時間差,單位爲分鐘

var nowDate = d.getTime(); // 本地時間距 1970 年 1 月 1 日午夜(GMT 時間)之間的毫秒數

var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);

console.log("東8區如今是:" + targetDate);

return targetDate;

}
————————————————
版權聲明:本文爲CSDN博主「yezi_huan」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/yezi_yanyuhuan/article/details/96769160

 

JavaScript獲取當前時區:

new Date().getTimezoneOffset()
這樣獲取到的是與0時區的時間差(0時區減去當前所在時區,單位是分鐘)
中國標準時間是以東八區爲準,比0時區的時間要早8個小時,因此是-480,除以60就是所在時區
時間字符串轉成毫秒時,若是咱們不加時區,則系統會默認把當前時區加上,也可自定義時區來轉換
(也可先轉成毫秒,再加上時間差,再轉成時間字符串,這樣明顯要麻煩多了)

 

————————————————
版權聲明:本文爲CSDN博主「password-u」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/u013992330/article/details/78625855

 

第一種: $.ajax({ type:"OPTIONS", url:"/", complete:function(x){ var date = x.getResponseHeader("Date"); date = new Date(date); } }); 結果:Mon Oct 23 2017 17:26:59 GMT+0800 (中國標準時間) 第二種: function getNowDate(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else{ xhr = new ActiveObject("Microsoft") } xhr.open("GET","/",false); xhr.send(null); var date = xhr.getResponseHeader("Date"); date = new Date(date); return date; } 結果:Mon Oct 23 2017 17:26:59 GMT+0800 (中國標準時間)

原文地址:https://www.cnblogs.com/yexiaocangji/p/7717811.html

 

依賴jQuery

代碼:

function getServerDate(){ return new Date($.ajax({async: false}).getResponseHeader("Date")); }
相關文章
相關標籤/搜索