js 时间的国际化处理


//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  通常只处理当前时间的对应的国际化时间。