我正在使用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/
答案 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);
});
答案 1 :(得分:6)
当您考虑夏令时时,上述解决方案并不完全正确 - 例如。像英国这样的国家,你将短暂1小时,下面做1天增量更好 -
$('.next-day').on("click", function () { var date = $('#picker').datepicker('getDate'); date.setDate(date.getDate() + 1) $('#picker').datepicker("setDate", date); });