【发布时间】:2014-08-12 12:51:26
【问题描述】:
我正在使用 moment-with-locales.min.js 进行日期操作,我需要在用户离开文本框时进行格式化。因为语言环境是一个问题,所以我正在尝试使用 moment 进行格式化。但是,我遇到了一个问题,我不确定我做错了还是什么。
如果用户输入“2/2/12”之类的内容,而我尝试执行 moment('2/2/12', 'l'),则使用 'l'基于语言环境的短日期,它将其格式化为“2/2/0012”。这本身似乎被打破了。
如果我尝试使用 moment('2/2/12', 'M/d/yyyy') 进行格式化,如下面的 JSFiddle 所示,它会将其更改为 '2/1 /2014'。它总是将其降低到该月的第一天,并使其成为当前年份。
这是我使用的JSFiddle。
moment.locale('en-US');
var parsed = moment('2/2/12', 'M/d/yyyy');
if (moment(parsed).isValid()) {
var d = new moment(parsed, 'l');
alert('Pass: ' + d.format('l'));
} else {
alert('Fail: ' + parsed);
}
我将不胜感激并提供帮助。
【问题讨论】:
-
为什么不自己解析呢?它需要 2 行代码,可能需要 4 行验证。
标签: javascript momentjs date-parsing