如何在daterangepicker中设置加两年jquery
How to set plus two years in daterangepicker jquery
我有两个 daterangepicker,我想根据第一个 daterangepicker 的值将加上两年作为第二个 daterangepicker 的最大日期。例如,如果我在第一个日期选择器上将值设置为“2019-10-10”,那么最大日期应设置为第二个日期选择器为“2021-10-10”。
这是我尝试过但似乎不起作用的方法
$('.date-select').daterangepicker({
singleDatePicker: true,
locale: {
format: 'YYYY-MM-DD'
},
}).on("input change", function (e) {
$("#end_date").daterangepicker({ singleDatePicker: true, minDate: -0,dateFormat: 'YYYY-MM-DD', maxDate: "+0D+0M+2Y" });
});
$('#end_date').daterangepicker({
singleDatePicker: true,
locale: {
format: 'YYYY-MM-DD'
},
});
}
});
显示无效日期。非常感谢您的帮助。谢谢
我没看到你引用第一个日期输入。尝试获取它的值,将其转换为 Date 对象,添加两年并将其设置为 #end_date
输入的新 maxDate
,如下所示:
$('#start_date').daterangepicker({
singleDatePicker: true,
locale: {
format: 'YYYY-MM-DD'
},
}).on("input change", function (e) {
let d = new Date( $('#start_date').val() );
d.setFullYear(d.getFullYear() + 2);
$('#end_date').daterangepicker({
singleDatePicker: true, locale: {format: 'YYYY-MM-DD'}, maxDate: d
});
});
$('#end_date').daterangepicker({
singleDatePicker: true, locale: {format: 'YYYY-MM-DD'},
});
查看此 JS Bin 演示。
顺便说一句:您可能有其他选择的理由,但如果您不使用两个单独的输入并定义 maxSpan
选项,会容易得多。这样,您根本不必处理事件,库会为您完成工作。
您也可以使用 Datepicker 的 'OnSelect' 事件来实现同样的...
$("#From_Date").datepicker({
dateFormat: 'dd/mm/yy',
onSelect: function(dateStr) {
var d = $.datepicker.parseDate('dd/mm/yy', dateStr);
var years = parseInt(2);
d.setFullYear(d.getFullYear() + years);
$('#To_Date').datepicker('setDate', d);
}
});
$("#To_Date").datepicker({
dateFormat: 'dd/mm/yy'
});
这是html。
<input id="From_Date" />
<input id="To_Date" />
我有两个 daterangepicker,我想根据第一个 daterangepicker 的值将加上两年作为第二个 daterangepicker 的最大日期。例如,如果我在第一个日期选择器上将值设置为“2019-10-10”,那么最大日期应设置为第二个日期选择器为“2021-10-10”。
这是我尝试过但似乎不起作用的方法
$('.date-select').daterangepicker({
singleDatePicker: true,
locale: {
format: 'YYYY-MM-DD'
},
}).on("input change", function (e) {
$("#end_date").daterangepicker({ singleDatePicker: true, minDate: -0,dateFormat: 'YYYY-MM-DD', maxDate: "+0D+0M+2Y" });
});
$('#end_date').daterangepicker({
singleDatePicker: true,
locale: {
format: 'YYYY-MM-DD'
},
});
}
});
显示无效日期。非常感谢您的帮助。谢谢
我没看到你引用第一个日期输入。尝试获取它的值,将其转换为 Date 对象,添加两年并将其设置为 #end_date
输入的新 maxDate
,如下所示:
$('#start_date').daterangepicker({
singleDatePicker: true,
locale: {
format: 'YYYY-MM-DD'
},
}).on("input change", function (e) {
let d = new Date( $('#start_date').val() );
d.setFullYear(d.getFullYear() + 2);
$('#end_date').daterangepicker({
singleDatePicker: true, locale: {format: 'YYYY-MM-DD'}, maxDate: d
});
});
$('#end_date').daterangepicker({
singleDatePicker: true, locale: {format: 'YYYY-MM-DD'},
});
查看此 JS Bin 演示。
顺便说一句:您可能有其他选择的理由,但如果您不使用两个单独的输入并定义 maxSpan
选项,会容易得多。这样,您根本不必处理事件,库会为您完成工作。
您也可以使用 Datepicker 的 'OnSelect' 事件来实现同样的...
$("#From_Date").datepicker({
dateFormat: 'dd/mm/yy',
onSelect: function(dateStr) {
var d = $.datepicker.parseDate('dd/mm/yy', dateStr);
var years = parseInt(2);
d.setFullYear(d.getFullYear() + years);
$('#To_Date').datepicker('setDate', d);
}
});
$("#To_Date").datepicker({
dateFormat: 'dd/mm/yy'
});
这是html。
<input id="From_Date" />
<input id="To_Date" />