如何使用jquery datepicker将日期添加到日期

时间:2010-01-07 16:19:35

标签: jquery jquery-ui datepicker

我的网站上有两个文本框,用于提取日期和使用jquery日期选择器的删除日期。

我无法将下拉日期值设置为选定的取件日期的前一天。

这就是我所拥有的:

$('.pickupDate').change(function() {
    var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
    $('.dropoffDate').datepicker('setDate', date2);
});

以上将执行,但是下拉文本框中的值将与拾取值匹配,而不是提前一天。例如:如果我选择01-01-2010,上面的代码会在下拉框中返回01-01-2010,而不是02-01-2010。

有什么想法吗?

感谢您的帮助, 富

3 个答案:

答案 0 :(得分:67)

试试这个:

 $('.pickupDate').change(function() {
  var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
  date2.setDate(date2.getDate()+1); 
  $('.dropoffDate').datepicker('setDate', date2);
});

答案 1 :(得分:8)

这个答案真的帮助我开始(noob) - 但是当我设置开始日期为2014年12月31日并且添加+1以默认结束日期时,我遇到了一些奇怪的行为。而不是给我一个2015年1月1日的结束日期,我得到了2015年1月1日(!!!)。这个版本解析了开始日期的组成部分,以避免这些年终怪异。


 $( "#date_start" ).datepicker({

   minDate: 0,
   dateFormat: "mm/dd/yy",

   onSelect: function(selected) {
         $("#date_end").datepicker("option","minDate", selected); //  mindate on the End datepicker cannot be less than start date already selected.
         var date = $(this).datepicker('getDate');
         var tempStartDate = new Date(date);
         var default_end = new Date(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()+1); //this parses date to overcome new year date weirdness
         $('#date_end').datepicker('setDate', default_end); // Set as default                           
   }

 });

 $( "#date_end" ).datepicker({

   minDate: 0,
   dateFormat: "mm/dd/yy",

   onSelect: function(selected) {
     $("#date_start").datepicker("option","maxDate", selected); //  maxdate on the Start datepicker cannot be more than end date selected.

  }

});

答案 2 :(得分:4)

datepicker('setDate')将datepicker中的日期设置为不在输入中。

您应该添加日期并在输入中进行设置。

var date2 = $('.pickupDate').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 1);
$('input').val(nextDayDate);