在經過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")); }