$(function() {
$('#datepicker').datepicker({
beforeShowDay: daysToMark,
onSelect: function(date,evt){
if (evt.currentMonth < 10){
evt.currentMonth = "0"+evt.currentMonth;
}
if (evt.currentDay < 10){
evt.currentDay = "0"+evt.currentDay;
}
//var Month = evt.currentMonth;
//console.log(nMonth);
return [true, "fancy-hover", ""];
daysToMark(evt.currentYear+"-"+evt.currentMonth+"-"+evt.currentDay);
}
});
});
但是当我在2011年检查控制台年份时,一天是7,月份有问题,它显示06而不是07.我猜这是一个从0开始计算的阵列问题,但我该如何解决?
我试过这个 - &gt;
evt.currentMonth = evt.currentMonth + 1
但没有结果。
提前致谢
答案 0 :(得分:3)
JavaScript中的月份为零索引。因此,1月= 12月0日= 11
我认为你最好将+1添加到这一行:
daysToMark(evt.currentYear+"-"+evt.currentMonth+"-"+evt.currentDay);
以某种方式这样:
var template = '{{YEAR}}-{{MONTH}}-{{DAY}}';
daysToMark( template.replace(/{{YEAR}}/, evt.currentYear).replace(/{{MONTH}}/, Number(evt.currentMonth) + 1).replace(/{{DAY}}/, evt.currentDay));
答案 1 :(得分:0)
您无法通过更改传递参数来更改日期选择器的日期值。如果您想重置日期选择器时间,则必须使用。和Mark一样,JavaScript中的所有枚举都是零索引。
$('#datepicker').datepicker("setDate", new Date());
您可以在此处详细了解Date object