我正在尝试从文本框中的日期检索全年,但如果日期超过12,则不会返回(因此我怀疑这是日期格式问题),但我怎样才能使其正常工作?
$(function() {
$("#dateInput").datepicker({
onSelect: function (dateText) {
var birthDate = new Date($(this).val()).getFullYear();
alert(birthDate);
},
dateFormat: 'dd/mm/yy',
constrainInput: true,
changeMonth: true,
changeYear: true,
defaultDate: new Date()
});
});
请点击此处查看示例:http://jsfiddle.net/5JCRs/12/
感谢。
答案 0 :(得分:3)
使用大写MM
代替小写mm
,它应该可以使用。所以你的日期格式应该是:
dateFormat: 'dd/MM/yy',
答案 1 :(得分:2)
您可以使用datepicker.parseDate
功能,该功能将根据指定的格式 解析日期 :
$。datepicker.parseDate(格式,值,设置) - 提取日期 来自具有指定格式的字符串值。
必须将onSelect
函数更改为:
onSelect: function(dateText, inst) {
var date = $.datepicker.parseDate(
inst.settings.dateFormat || $.datepicker._defaults.dateFormat,
dateText,
inst.settings
);
alert(date.getFullYear());
}
datepicker.parseDate
函数需要第一个参数中的日期格式。提供此值的最佳方法是使用明确指定的日期格式或回退到默认日期格式。
答案 2 :(得分:0)
将dateFormat
选项值设置为'yy':
$( "#dateInput" ).datepicker({ dateFormat: "yy" });
或者,如果您使用regional
设置:
$.datepicker.regional["it"] = {
//...
, dateFormat: "yy"
//...
}
参考here。
答案 3 :(得分:0)
这只是JQuery和Javascript中日期格式的区别。在javascript中,当您将dateString提供给new Date(dateString)
时,可能的日期格式为
MM-dd-yyyy
yyyy/MM/dd
MM/dd/yyyy
MMMM dd, yyyy
MMM dd, yyyy
你可以为JQuery提供dateFormat:'mm / dd / yy'然后它可以工作,这相当于javascript中的MM / dd / yyyy。