字符串 12.01.2015
例如在德国代表 2015 年 1 月 12 日。但以下代码无法按预期工作:
moment.locale('de');
moment('12.01.2015').toString(); // "Tue Dec 01 2015 00:00:00 GMT+0100"
moment('12.01.2015').fromNow(); // "in einem Jahr" (==> locale setting is OK)
在 locale/de.js 中有以下内容:
longDateFormat : {
...
L : 'DD.MM.YYYY',
...
}
为什么字符串没有按我认为应该的方式解析?
最佳答案
Momen't locale 设置所需的时刻输出。不是输入。您需要提供如下输入格式:
moment('12.01.2015', 'DD.MM.YYYY')
参见 this github 页面以获取更多关于这种行为在未来将如何改变的具体解释。
您可以将其包装在一个函数中,这样您就不必随身携带格式:
function germanMoment(date){
return moment(date, 'DD.MM.YYYY')
}
然后您可以简单地使用 germanMoment('12.01.2015').fromNow()
,它将按需要工作。
关于javascript - Moment.js 将文本解析为日期似乎与语言环境不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27317215/