Javascript js处理德语的Dezember和Januar不同

Javascript js处理德语的Dezember和Januar不同,javascript,reactjs,momentjs,Javascript,Reactjs,Momentjs,我想知道为什么moment.js handels几个月不一样。例如,德语: Mai,März,Oktober,Dezember不工作来转换toDate()。每隔一个月工作一次。我想,因为这四个月的开头和英语的前三个字母不一样。德语一月/日与英语一月/日相同。所以这是可行的 我已经将我的全球语言设置为德语,所以我不知道为什么会发生这种情况 这是一个测试的例子。以及守则: var now = moment('7. Dezember 2016').toDate(); alert(now); var

我想知道为什么moment.js handels几个月不一样。例如,德语: Mai,März,Oktober,Dezember不工作来转换toDate()。每隔一个月工作一次。我想,因为这四个月的开头和英语的前三个字母不一样。德语一月/日与英语一月/日相同。所以这是可行的

我已经将我的全球语言设置为德语,所以我不知道为什么会发生这种情况

这是一个测试的例子。以及守则:

var now = moment('7. Dezember 2016').toDate();
alert(now);

var now = moment('9. Januar 2016').toDate();
alert(now);

这是一个按预期工作的版本:(Fiddle)

我使用的是最新版本的moment.js,它已经随地区一起提供了

https://momentjs.com/downloads/moment-with-locales.min.js
您的代码有问题:

不能只将任何日期格式传递给
moment()
函数。momentjs只能识别一些特定的格式。如果无法识别该格式,则会将解析字符串的任务作为日期/时间传递给浏览器。因此,您看到的特定行为是您的浏览器试图解析字符串

从字符串创建时刻时,我们首先检查字符串是否匹配已知的ISO 8601格式,然后检查字符串是否匹配RFC 2822日期时间格式,如果找不到已知格式,则返回到新日期(字符串)的回退。 ()


要解决此问题,请指定a(在本例中为“
LL
”)作为第二个参数,以指定字符串使用的格式。

在小提琴中,两者都失败。此外,在fiddle中,您只能链接到一个不包含任何翻译的矩.js文件。请提供一份真实的报告。另外,请展示您是如何设置momentjs语言的。另外,您在小提琴中使用的是一个过时版本的moment.js(2.2.1)。为什么?小提琴只是一把不同小提琴的叉子。我没有检查那里的版本。在我的React应用程序中,我使用的是最新的。谢谢,现在可以使用了。这是一个非常好的解释。
https://momentjs.com/downloads/moment-with-locales.min.js