MomentJS返回重复的月份?

时间:2015-07-27 15:36:46

标签: javascript date momentjs

我正在使用MomentJS将我从服务获得的日期字符串解析为字符串月份。

字符串格式为“2013-1”,应该是1月。时刻得到了正确的答案。

然而,一旦我超越八月,有些事情很奇怪。

我有例如

console.log(moment('2012-9').format('MMMM')); 

九月归我。

然后我这样做:

console.log(moment('2012-10').format('MMMM')); it also returns September. 

这最终映射11到10月和12到12月,因此截止12月份的整个数据集。

我做错了什么,或问题是什么?我已经检查了所有其他月份并且没有这样做。

2 个答案:

答案 0 :(得分:2)

我已经确定了发生这种情况的原因。

日期格式'2012-1'不是标准的ISO日期。

要在我使用日期时返回正确的月份,我必须指定我的日期字符串所在的格式,所以我使用

console.log(moment('2012-10', 'YYYY-M').format('MMMM')); 

返回正确的月份,10月。

感谢大家的帮助。

答案 1 :(得分:0)

对遇到同样问题的其他人

最终修改moment('2012-10','YYYY-MM').format('MMMM');解决了OP的问题

您使用的是哪个时刻的JS版本?我刚试过2.10.5和

console.log(moment('2012-9').format('MMMM'));//Returns September

console.log(moment('2012-10').format('MMMM'));//Returns October

以下屏幕截图是控制台中momentjs网站上运行的代码:

enter image description here

如果您仍然遇到问题,请升级到最新版本。