//1 獲取相對於0時區的當地時區(默認得到的是分鍾,可能是負數;北京市東八+8 美國華盛頓為西五-5),中國比美國快13小時
//js默認轉換的時候自帶時區,只要數據庫存的是時間戳,顯示的時候不用刻意轉換
//入庫如果是存 年月日,需要獲取當前 對應的國外時間處理
getTimesByZone() {
//得到本地時間
var d = new Date();
//得到1970年一月一日到現在的秒數
var local = d.getTime();
//本地時間與GMT時間的時間偏移差
var offset = d.getTimezoneOffset() * 60000;
//獲取本地時區,判斷如果是負的則相加得到GMC時間,正的則相減
var localUtc = new Date().getTimezoneOffset() / 60;
//得到現在的格林尼治時間
var utcTime;
if (localUtc > 0) {
utcTime = parseInt(local - offset);
} else {
utcTime = parseInt(local + offset);
}
//得到時區的絕對值
var localTime = utcTime + 3600000 * Math.abs(localUtc);
let date = new Date(localTime);
console.log("根據本地時間得知" + localUtc + "時區的時間是 " + date.toLocaleString());
console.log("系統默認展示時間方式是:" + localTime)
return localTime;
},
總結:1 只要數據庫里面存儲的是時間戳,那么顯示的時候,不用特殊轉換,date函數會默認根據系統的時區轉成當地時間。
2 一般只處理當前時間的對應的國際化時間。