JavaScript Moment.js解析时区错误

查理鱼

我有以下使用Moment.js的JavaScript代码。

const time = "Thu Nov 01 2018 00:00:00 GMT-0400";
const momentTime = moment(time, "ddd MMM DD YYYY HH:mm:ss GMT-ZZ");
console.log(momentTime.toString()); // Thu Nov 01 2018 00:00:00 GMT-0600
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

问题是我期望以下值彼此相等(它们当前不是):

  • timeThu Nov 01 2018 00:00:00 GMT-0400
  • momentTime.toString()Thu Nov 01 2018 00:00:00 GMT-0600

我期望momentTime.toString()等于Wed Oct 31 2018 22:00:00 GMT-0600(如果我正确地做了数学)。

看起来由于某种原因,它只是错误地解析了时区或GMT偏移。

根据Moment.js解析文档,我应该能够将ZZ其解析为正确的时区。

知道我在做什么错吗?

查理鱼

如注释中所述,将代码更改为以下代码:

const time = "Thu Nov 01 2018 00:00:00 GMT-0400";
const momentTime = moment(time, "ddd MMM DD YYYY HH:mm:ss ZZ");
console.log(momentTime.toString()); // Wed Oct 31 2018 22:00:00 GMT-0600
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

因此,基本上更改GMT-ZZZZ格式字符串即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章