jQuery中的currentMonth问题

时间:2011-07-07 13:09:45

标签: jquery datepicker

$(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

但没有结果。

提前致谢

2 个答案:

答案 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