我使用 moment-with-locales.min.js 进行日期操作,我需要在用户离开文本框时进行格式化。由于区域设置是一个问题,我尝试使用时刻进行格式化。但是,我遇到了一个问题,我不确定我做错了什么。
如果用户输入类似于' 2/2/12'我尝试用时刻(' 2/2/12',' l'),使用' l'对于基于区域设置的短日期,它将其格式化为' 2/2 / 0012'。这本身似乎已经破裂了。
如果我尝试使用时刻(' 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);
}
我很感激和帮助。
答案 0 :(得分:0)
您应该使用"D"
("d"
星期几)。
至于这一年,根据docs,«默认情况下,两位数的年份解析器假定68岁以上的年份在1900年以及2000年以下的年份。»所以我'猜测(和实验似乎证实了)如果你使用4位数字格式("YYYY"
),它会假设你在12年而不是2012年过世。如果你使用"YY"
它' ll打印2012年正确。
总而言之,格式"M/D/YY"
应该做你想要的。