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


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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM