木灵鱼儿

木灵鱼儿

阅读:226

最后更新:2022/12/01/ 13:46:48

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()

版权申明

本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

关于作者

站点职位 博主
获得点赞 0
文章被阅读 226

相关文章

目录树