在通過js獲取服務器時間時,遇到了小小的問題,但造成的影響挺大的,所以寫出來提醒大家,在獲取服務器時間時一定要細心要多測試多驗證。
js 中使用以下方法獲取服務器時間時要注意兩點:
1.xhr.open()方法中,中間的路徑最好不要寫 “” 或 "/",如果寫空,在部分谷歌下獲取時間會有問題,所以最好給一個具體的URL。
2.該獲取時間方法,可以正確獲取服務器時間,若服務器改時區后,此處獲取的依然是服務器北京時區下應該顯示的時間。
而本機電腦獲取服務器時間后,也會將該時間轉換為本機電腦上時區應該顯示的問題。
所以本地改時區后,會將服務器時間改為本地時區對應的時間,這一點一定要注意!!!!!!!!!!!
可以將獲取到的時間統一更改為北京時區時間,或直接改為從后台獲取。
這兩個方法也是從其他文章中摘抄的,希望大神能原諒~~~~~~~~~~~~~~~~~~~~
//獲取服務器時間
function getServerDate(){
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")); }