舉個例子 (中國和日本,中國比日本早一個鐘)
首先new Date() 是獲取本機時間吧 (時間代碼寫在前端,不在服務器,先不理會安不安全)
比如 我在北京時間 js代碼里寫new Date().getDate() 獲取到北京時間的12點 那日本那邊打開我寫的這個網頁 所獲取到的也是日本時間的12點而不是13點吧,因為如果是按照本機時間算 那計算就不會出錯吧
uj5u.com熱心網友回復:
時區不一樣,時間點肯定就不一樣,你可以使用時間戳,時間戳是沒有時區的概念的,這樣無論在處于哪個時區,時間都是一樣的,或者使用utc時間也是一樣uj5u.com熱心網友回復:
js將UTC時間轉化為當地時區時間(UTC轉GMT)我們在進行網站開發的時候有可能會涉及到國外的用戶或者用戶身在國外,這時就會存在時差問題,比如說我們在中國的時間是08:00,但是此時韓國的時間是09:00,如果在網頁上需要進行相關顯示的話就會出現問題,那作為一個前端該怎么解決這個問題呢?
前端通過請求獲取的時間一般都是時間戳格式,這個時間戳一般就是UTC時間(*UTC:最接近標準時間的一個時間標準),而我們在網頁上需要顯示的是GMT時間,下面就是根據本地時間獲得GMT時間和任意時區的時間函式:
1.將本地時間轉化成任意時區的時間(如:通過本地時間獲取韓國的時間):
首先我們需要知道韓國的時區,這個可以網上查,韓國時區為東9區.
復制代碼
復制代碼
var d=new Date();
var localTime = d.getTime();
var localOffset=d.getTimezoneOffset()*60000; //getTimezoneOffset()回傳是以分鐘為單位,需要轉化成ms
var utc = localTime + localOffset;
var offset =9; //以韓國時間為例,東9區
var korean= utc + (3600000*offset);
var nd = new Date(korean);
console.log("Korean time is " + nd.toLocaleString());
復制代碼
復制代碼
2.UTC時間轉化為本地時區時間(UTC時間格式一般為 "2017-11-16T05:23:20.000Z");
復制代碼
復制代碼
convertUTCTimeToLocalTime: function (UTCDateString) {
if(!UTCDateString){
return '-';
}
function formatFunc(str) { //格式化顯示
return str > 9 ? str : '0' + str
}
var date2 = new Date(UTCDateString); //這步是關鍵
var year = date2.getFullYear();
var mon = formatFunc(date2.getMonth() + 1);
var day = formatFunc(date2.getDate());
var hour = date2.getHours();
var noon = hour >= 12 ? 'PM' : 'AM';
hour = hour>=12?hour-12:hour;
hour = formatFunc(hour);
var min = formatFunc(date2.getMinutes());
var dateStr = year+'-'+mon+'-'+day+' '+noon +' '+hour+':'+min;
return dateStr;
},
console.log(convertUTCTimeToLocalTime("2017-11-16T05:23:20.000Z"));
//2017-11-16 PM 01:23
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/104039.html
標籤:JavaScript
上一篇:海康視頻插件遮擋住了選單下拉框,有沒有人知道怎么解決,求告知!!
下一篇:泛微OA求助
