moment utc时间转本地时间
服务器返的时间是一个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()
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据