为什么当我尝试“五月”这个月时,我会得到“无效日期”?(这是荷兰语,所以才有“梅”)
当我尝试月份“六月”(荷兰语:"juni")时,我没有得到“无效日期”。
我不明白..。检查小提琴:小提琴
脚本:(纯粹是为了测试目的,以显示月份“可能”不起作用)
$(document).ready(function () {
var newvartitle = "5 mei 2014";
var goodformatdata = moment(newvartitle).format('DD/MM/YYYY');
var newvartitle2 = "5 juni 2014";
var goodformatdata2 = moment(newvartitle2).format('DD/MM/YYYY');
$('.tester').append(goodformatdata);
$('.tester').append(goodformatdata2);
});
这个问题解决了,,解决方案:http://jsfiddle.net/kULx3/2/
发布于 2014-04-23 03:55:33
问题是您使用的语言是输出语言。例如,如果您尝试这样做
alert(moment("5 5 2014").lang("nl").format("DD/MMMM/YYYY"));
输出将是
05/mei/2014
为了接受荷兰语的输入,您必须实现它。例如,创建一个将字符串作为参数并将荷兰月份更改为数字的方法,因此当您调用
moment(toMoment("5 mei 2014")).lang("nl").format("DD/MMMM/YYYY")
toMoment("5 mei 2014")
的返回值为5 5 2014
其中一个例子就是
function toMoment(str){
var result = null;
var splitted = str.split(" ");
var month = splitted[1];
switch(month){
case "mei": result = "5"; break;
}
return splitted[0] + " " + result + " " + splitted[2];
}
发布于 2014-04-23 03:24:12
默认情况下,Moment.js设置为英语。可以通过将所需的语言传递到Moment.js的.lang()
函数来更改这一点:
moment.lang('en');
在英语中,"juni“中的"i”被完全忽略了。Moment.js只查看月份名称的前三个字母。"Juni“被视为"jun”(英文中的“Jun”),而英文中没有以"mei“开头的三个字母的月份。
https://stackoverflow.com/questions/23242771
复制