使用jQuery UI datepicker选择下一天和前一天

时间:2014-01-16 17:19:26

标签: javascript jquery jquery-ui datepicker

我正在使用jQuery UI datepicker,我有一个按钮,可以将所选日期向前更改一天,还有一个按钮可以将所选日期向后更改一天。现在,我的“前一天”按钮工作正常。如果多次单击我的上一个按钮然后单击我的“第二天”按钮,它只会增加一次日期。例如,如果将datepicker设置为2014年1月10日并单击“第二天”按钮,则会将其更新为2014年1月11日,但如果再次单击它,则不会发生任何事情。如果我点击“第二天”按钮而没有先单击“前一天”按钮,它将正常工作。这是我的jQuery:

var currentDay = new Date();
var nextDay = new Date();
var previousDay = new Date();

$('.next-day').each(function() {
    $(this).on("click", function () {

        if (previousDay < currentDay) {
            nextDay.setDate(previousDay.getDate() + 1);
        } else {
            nextDay.setDate(nextDay.getDate() + 1);
        }

        $('#to').datepicker("setDate", nextDay);
        $('#from').datepicker("setDate", nextDay);
    });
});

编辑:这是一个jsFiddle http://jsfiddle.net/p2T2g/

2 个答案:

答案 0 :(得分:13)

这并不难,比如

$('.next-day').on("click", function () {
    var date = $('#picker').datepicker('getDate');
    date.setTime(date.getTime() + (1000*60*60*24))
    $('#picker').datepicker("setDate", date);
});

$('.prev-day').on("click", function () {
    var date = $('#picker').datepicker('getDate');
    date.setTime(date.getTime() - (1000*60*60*24))
    $('#picker').datepicker("setDate", date);
});

FIDDLE

答案 1 :(得分:6)

当您考虑夏令时时,上述解决方案并不完全正确 - 例如。像英国这样的国家,你将短暂1小时,下面做1天增量更好 -


    $('.next-day').on("click", function () {
        var date = $('#picker').datepicker('getDate');
        date.setDate(date.getDate() + 1)
        $('#picker').datepicker("setDate", date);
    });