jQuery UI datepicker:将6个月添加到另一个日期选择器

我有两个datepickers日历,一个用于开始日期,另一个用于结束日期。

我想要的是动态设置第二个日期选择器的defaultDate比第一个日期选择器的第一个日期晚六个月。

我知道如何向第二个datepicker报告fisrt日期,但我不知道如何将第六个月添加到第一个,然后将其添加为第二个datepicker的默认日期

这是我的代码:

$(".firstcal").datepicker({ dateFormat: "dd/mm/yy", onSelect: function (dateText, inst) { var date = $.datepicker.parseDate('dd/mm/yy', dateText); var $sec_date = $(".secondcal"); $sec_date.datepicker("option", "defaultDate", date); } }); $(".secondcal").datepicker({ dateFormat: "dd/mm/yy" }); 

非常感谢你的帮助

编辑:

在datePicker中,存在六个月添加到日期的function:它标记为“+ 6M”。 我只想在第一个日期添加“+ 6M”并将其作为默认日期发送到第二个日期。

  1. 将选定的日期字符串解析为JavaScript日期对象。
  2. 使用Date.getMonth()Date.setMonth()更改月份。 如果需要,后一种function会自动增加/减少年份。
  3. 使用jQuery datepicker的setDate方法更改第二个datepicker的日期(设置defaultDate不会给你想要的结果)。
 onSelect: function(dateText, instance) { date = $.datepicker.parseDate(instance.settings.dateFormat, dateText, instance.settings); date.setMonth(date.getMonth() + 6); $(".secondcal").datepicker("setDate", date); } 

在这里演示

添加6个月的日期

  var second_date = new Date(date); second_date.setMonth(second_date.getMonth()+6); //+6 is however many months 

然后更新值

 $("#secondcal").val(second_date); //It is probably better to work with ID 

这是我用来将第二个对话框的最大日期设置为比第一个对话框晚一个月的代码。 所以你只需要设置默认日期

  var beginsDate=$('#dlg_begins').datepicker('getDate'); var monthMillisec=30*24*60*60*1000; var maxDate=new Date(); maxDate.setTime( beginsDate.getTime() + monthMillisec ); $('#dlg_expires').datepicker('option', { 'maxDate':maxDate, 'minDate':beginsDate });