如何在Flatpickr的onchange事件中将dateStr加1天设置关联日期最小值
修改后完整代码
var arrival = $('#datepicker'); var departure = $('#datepicker1'); // 保存两个选择器的Flatpickr实例,方便后续修改配置无需重复初始化 const arrivalPicker = arrival.flatpickr({ dateFormat: "d-m-Y", disableMobile: true, locale: "de", minDate: "today", onChange: function(selectedDates, dateStr, instance) { // 判定是否选中了有效日期 if (selectedDates.length > 0) { // 直接用回调返回的原生Date对象计算+1天,无需手动解析日期字符串 let minDepartDate = new Date(selectedDates[0]); minDepartDate.setDate(minDepartDate.getDate() + 1); // 调用实例set方法直接更新出发日期的最小可选值 departurePicker.set('minDate', minDepartDate); } departure.removeAttr('readonly'); arrival.removeAttr('readonly'); } }); const departurePicker = departure.flatpickr({ dateFormat: "d-m-Y", disableMobile: true, locale: "de", minDate: "today", // 如果你需要保留原有选择出发日期后限制到达日期的逻辑,参照上面的写法调整即可,这里可以按需求保留或删除onChange });
核心修改说明
- 优先使用Flatpickr的
onChange回调自带的selectedDates参数处理日期计算,避免手动解析d-m-Y格式字符串可能出现的格式适配错误 - 提前保存Flatpickr实例引用,用实例自带的
set方法修改配置,替代原有重复初始化选择器的冗余逻辑,运行更稳定
内容的提问来源于stack exchange,提问作者Ayari
相关产品推荐
相关产品推荐

