Javascript MomentJS返回重复的月份?
我使用MomentJS将从服务中获取的日期字符串解析为字符串月份 字符串的格式类似于“2013-1”,应该是1月份。这一刻是正确的 然而,一旦我过了八月,事情就变得很奇怪了 例如,我有Javascript MomentJS返回重复的月份?,javascript,date,momentjs,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日映射
console.log(moment('2012-9').format('MMMM'));
对我来说是九月
那么我会:
console.log(moment('2012-10').format('MMMM')); it also returns September.
这最终将11日映射到10月,12日映射到12月,因此12月的整个数据集被截断
我现在是做错了什么,还是出了什么问题?我已经检查了所有其他月份,但它没有这样做 对面临相同问题的任何其他人进行最终编辑:
时刻('2012-10','YYYY-MM')。格式('MMMM')代码>解决了OP的问题
您使用的是哪个momentJS版本?我刚试过2.10.5和
console.log(moment('2012-9').format('MMMM'));//Returns September
console.log(moment('2012-10').format('MMMM'));//Returns October
下面的屏幕截图是momentjs网站在控制台中运行的代码:
如果仍面临问题,请升级至最新版本。我已确定发生这种情况的原因
日期“2012-1”的格式不是标准ISO日期
为了在处理日期时返回正确的月份,我必须指定日期字符串的格式,因此我使用
console.log(moment('2012-10', 'YYYY-M').format('MMMM'));
返回正确的月份,十月
谢谢大家的帮助 我无法复制这一点;检查moment.js对字符串处理的描述。月份从00==一月,10==九月开始。9是无效月份(取决于您的浏览器)。测试力矩为2.10。3@nril当我对console.log(矩('2012-0').format('MMMM')执行同样的操作时,它给了我一个无效的日期错误。@KimGysen这就是我运行你的小提琴时发生的情况:我的错误-如果你想使用这种格式,你需要提供解析输入的格式-如('2012-01','YYYY-MM')。所以您的完整语句应该是:console.log(moment('2012-09','YYYY-MM').format('MMMM');在这种格式中,一月是01,而不是00。我使用的是2.10.0。我会更新并检查发生了什么。我更新到了最新版本,这是这两个截图中的结果。一个是我用来检查的行的代码,另一个是结果。代码行:结果:我明白了,您可以尝试使用console.log(矩('2012-10','YYYY-MM').format('MMMM'))吗;然后用你得到的回答?@oscarmccullow很高兴这能奏效,你能接受帮助你的答案吗(除了你自己的答案)?