我的日期格式是一位数的月份(没有前导零),后跟两位数的日期和两位数的年份。
2013 年 1 月 1 日 = 10113
我正在尝试将具有正确格式的日期选择器附加到它,但它的格式不正确。
<input type="text" id="date" value="10113">
$("#date").datepicker({ dateFormat: 'mddy'});
当日期选择器弹出时,它的日期是 2003 年 10 月 11 日。
我的日期格式是一位数的月份(没有前导零),后跟两位数的日期和两位数的年份。
2013 年 1 月 1 日 = 10113
我正在尝试将具有正确格式的日期选择器附加到它,但它的格式不正确。
<input type="text" id="date" value="10113">
$("#date").datepicker({ dateFormat: 'mddy'});
当日期选择器弹出时,它的日期是 2003 年 10 月 11 日。
不幸的是,您的格式不起作用。如果您查看 的实现datepicker
formatDate
,您会发现m
它会尝试匹配 1 位或 2 位数字,因为它无法提前判断您的意思是 1 月而不是 10 月,
这个方法是这样调用的,getNumber('m'):
var getNumber = function(match) {
var isDoubled = lookAhead(match);
var size = (match == '@' ? 14 : (match == '!' ? 20 :
(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
var digits = new RegExp('^\\d{1,' + size + '}');
var num = value.substring(iValue).match(digits);
if (!num)
throw 'Missing number at position ' + iValue;
iValue += num[0].length;
return parseInt(num[0], 10);
};
如您所见,“m”的大小为 2,因此它将匹配 2 位数字!如有疑问,请在代码中放置断点并查看会发生什么(这就是我刚刚所做的,使用 chrome 开发人员工具)