服务器返的时间是一个utc的时间字符串2022-12-01 03:00:30,我们需要将其转为我们本地时区,以东八区为准,正确的时间应该是2022-12-01 11:00:30

我当时这么写的:

moment(new Date(time)).local();

其实这是有问题的,首先我其实是为了防止time这个变量错误,所以使用了new Date,但其实是不对的,new Date会导致时间被转为本地时间且不会加上本地时区的8个小时。

new Date("2022-12-01 03:00:30");  //Thu Dec 01 2022 03:00:30 GMT+0800 (中国标准时间)

这个时间再被moment处理成local其实是没有变化的。

正确的写法应该是:

if(typeof time !==  "string"  || time.trim() ===  "") return "";

const myTime = moment.utc(time).local();

先对变量做个判空处理,然后再通过utc方法传入字符串时间,最后转local,此时你可以得到一个utc转本地化的时间。

事实上原生Date对象也有提供utc方法,但是这个方法对参数要求比较麻烦,具体自行查看文档:Date.UTC()

分类: vue 项目实战 标签: momentUTC时间转换

评论

暂无评论数据

暂无评论数据

目录