解决日期时间经过js处理后时间被加上了时区的问题

先来看具体的场景:

1、数据库里读取出来的json,如下:

[ { num: '20200713-29', time: 2020-07-13T19:15:42.000Z } ]

2、然后在js中解析json,获取time,代码如下:

var data= new Array();
data[0]=json[0].num;
data[1]=json[0].time;

3、输出结果时,发现时间被自动加上了8小时,也就是说时区发生了改变,如下:

console.log("时间:"+data[1]);
//输出信息如下:
时间:Tue Jul 14 2020 03:15:42 GMT+0800 (中国标准时间)

解决方法:

/**
 * 转换时区
 */
function changeTimeZone(dateString){
    var localDate = new Date(dateString);
    var localTime = localDate.getTime();
    var localOffset = localDate.getTimezoneOffset()*60*1000;
    return new Date(localTime + localOffset);
}
//调用方式:
data[1]=changeTimeZone(data[1]);
console.log("时间:"+data[1]);
//最终输出信息如下:
时间:Mon Jul 13 2020 19:15:42 GMT+0800 (中国标准时间)

 

你可能感兴趣的:(Javascript)