Javascript 如果设置了defaultDate,则链接的Datetimepicker不会更新
我使用带有一对链接选择器的datetimepicker 初次加载时,“开始日期”应显示当前日期,“到期日期”应显示“开始日期+30天”。这正是我们想要的。但是,当选择新的“开始日期”时,到期日期应始终默认为提前30天 这就是我所拥有的:Javascript 如果设置了defaultDate,则链接的Datetimepicker不会更新,javascript,datetimepicker,Javascript,Datetimepicker,我使用带有一对链接选择器的datetimepicker 初次加载时,“开始日期”应显示当前日期,“到期日期”应显示“开始日期+30天”。这正是我们想要的。但是,当选择新的“开始日期”时,到期日期应始终默认为提前30天 这就是我所拥有的: $(function () { function plusCalendarMonthToDate(e) { return moment(e.date).add(30, 'days').millisecond(0).seco
$(function () {
function plusCalendarMonthToDate(e) {
return moment(e.date).add(30, 'days').millisecond(0).second(0).minute(0).hour(0)
}
defaultStartDate = new Date();
$('#datetimepicker-start').datetimepicker({
format: 'YYYY-MM-DD 00:00:00',
minDate: defaultStartDate,
defaultDate: defaultStartDate
});
$('#datetimepicker-expiry').datetimepicker({
useCurrent: false,
format: 'YYYY-MM-DD 00:00:00',
minDate: $('#datetimepicker-start').val(),
defaultDate: plusCalendarMonthToDate(defaultStartDate)
});
$("#datetimepicker-start").on("dp.change", function (e) {
$('#datetimepicker-expiry').data("DateTimePicker").minDate(e.date);
// when a start_date is selected, set the expiry to 30 days plus
plusCalendarMonth = plusCalendarMonthToDate(e);
$('#datetimepicker-expiry').data("DateTimePicker").defaultDate(plusCalendarMonth);
});
$("#datetimepicker-expiry").on("dp.change", function (e) {
$('#datetimepicker-start').data("DateTimePicker").maxDate(e.date);
});
});
选择新的开始日期时,到期日期不会更新。我想这是因为我已经在初始化中设置了“defaultDate”,如果我删除了它,那么该功能就会工作,但当我丢失了到期日的初始默认值时。如何重写初始的defaultDate?解决方案似乎是使用“date()”而不是“defaultDate()”:
如果您只是将一个月添加到当前日期,为什么需要
defaultStartDate
作为参数?如果只在函数中实例化日期,然后添加一个月并返回它,不是更有意义吗?@Mike我只在第一次加载时将当前日期添加30天。一旦选择了开始日期,也必须将30天添加到该日期/
$('#datetimepicker-expiry').data("DateTimePicker").date(plusCalendarMonth)