我有两个datepickers日历,一个是开始日期,另一个是结束日期。
我要的是动态6个月后设置第二日期选择器的defaultDate比第一个,当第一次约会时采摘。
我知道如何报告最前一页日至第二日期选择,但我不知道怎么到六个月添加到第一个,然后将其添加为第二个日期选择器的defaultdate
这里是我的代码:
$(".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"
});
非常感谢你的帮助
编辑:
在日期选择器的功能,增加6个月的日期存在:它是标有“+ 6M”。 我只是想“+ 6M”添加到第一次约会并把它作为默认的日期到秒。
- 解析所选日期字符串转换为JavaScript日期对象。
- 使用
Date.getMonth()
和Date.setMonth()
来更改月份。 后者的功能将自动递增/如果有必要递减的一年。 - 使用jQuery日期选择器的
setDate
方法来改变第二日期选择器的日期(设置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
});