проблема currentMonth в jQuery - PullRequest
       0

проблема currentMonth в jQuery

0 голосов
/ 07 июля 2011
$(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, но как я могу это исправить?

Я пробовал это ->

evt.currentMonth = evt.currentMonth + 1

, но без результата.

заранее спасибо

Ответы [ 2 ]

3 голосов
/ 07 июля 2011

Месяцы в JavaScript индексируются нулем.Следовательно, январь = 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));
0 голосов
/ 07 июля 2011

Вы не можете изменить значение даты средства выбора даты, изменив его для переданного параметра. Если вы хотите сбросить время выбора даты, вы должны использовать. И, как сказал Марк, все перечисления в JavaScript индексируются нулем.

$('#datepicker').datepicker("setDate", new Date());

Здесь вы можете узнать больше о Дата объекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...