提供无效日期的时刻时区格式

时间:2016-08-25 13:42:41

标签: javascript momentjs

我在此格式中有以下时间和日期

Mon Aug 22 23:32:59 +0000 2016

我希望将它转换为洛杉矶时间,但是A)它会给出无效日期。和B)如果我删除最后一个参数“UTC”,它会给出正确的时间但错误的分钟。

我将它传递到时刻时区如下

 var a = moment.tz("Mon Aug 22 23:32:59 +0000 2016", "ddd MMM DD HH:MM:SS ZZ YYYY", "UTC");
        var b = a.tz("America/Los_Angeles");
        console.log(b.format("YYYY-MM-DD HH:MM A"));

但它给了我Invalid date,我无法弄清楚这个问题。 任何澄清都会有所帮助

更新 修复了无效日期的问题

var a = moment("Mon Aug 22 23:32:59 +0000 2016","ddd MMM DD HH:mm:ss ZZ YYYY");

还解决了时刻问题,这是因为我使用的是资本HH和MM而不是hh:mm我应该一直使用。

2 个答案:

答案 0 :(得分:2)

根据the documentation,您的格式字符串错误。

console.log(b.format("YYYY-MM-DD HH:mm A"));

它显示08分钟,因为MM(大写M)是Months的标记(August = 08),而mm是分钟的标记。这也是Invalid date的原因,它试图将会议记录解析为几个月,但无法解决。在更新中,您的大小写是正确的。

答案 1 :(得分:1)

这适用于我的终端:

var a = moment.tz("Mon Aug 22 23:32:59 +0000 2016", "ddd MMM DD HH:mm:ss Z YYYY", "UTC");
var b = a.tz("America/Los_Angeles");
console.log(b.format("YYYY-MM-DD HH:mm A"));

代码中的错误是分钟,秒和偏移部分。在此处查看文档:{​​{3}}

相关问题