Javascript 给出无效日期的时刻时区格式

Javascript 给出无效日期的时刻时区格式,javascript,momentjs,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

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

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"));
但是它给了我
无效日期
,我无法找出问题所在。 任何澄清都会有帮助

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

var a = moment("Mon Aug 22 23:32:59 +0000 2016","ddd MMM DD HH:mm:ss ZZ YYYY");
还修复了力矩问题,这是因为我使用的是大写字母HH和MM,而不是我应该使用的HH:MM。

根据,您的格式字符串是错误的

console.log(b.format("YYYY-MM-DD HH:mm A"));
它显示分钟的
08
,因为
MM
(大写M)是月份的标记(八月=08),而
MM
是分钟的标记。这也是
无效日期的原因,它试图将分钟解析为月份,但无法。在更新中,您的大写字母是正确的。

根据,您的格式字符串是错误的

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

它显示分钟的
08
,因为
MM
(大写M)是月份的标记(八月=08),而
MM
是分钟的标记。这也是
无效日期的原因,它试图将分钟解析为月份,但无法。在更新中,您的大写字母是正确的。

这在我的终端中起作用:

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"));

代码中的错误是分钟、秒和偏移部分。检查此处的te文档:

这在我的终端中起作用:

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"));

代码中的错误是分钟、秒和偏移部分。检查此处的te文档:

在C中,日期为“dd”,月份为“mm”,分钟为“mm”,秒为“SS”。我注意到八月是第八个月。仔细检查你面具上字母的大小写。在C中,天是“dd”,月是“mm”,分钟是“mm”,秒是“SS”。我注意到八月是第八个月。仔细检查你面具上字母的大小写。