1

因此,在对堆栈溢出进行了大量搜索之后,我没有为下面的代码找到更好的解决方案。我的实际问题是,我有 datetimepicker,我想添加 3 天datePickerStart并禁用它的过去日期,还dp.change希望将当前日期的 3 天显示在下一个 datetimepicker 中,datePickerEnd并禁用它的过去和未来日期除了增加的 3 天。我的意思是说只在下一个选择器中显示 3 天。例如,如果用户选择了 12 个日期,那么它应该在下一个选择器中显示 12 到 14 个日期,如果用户选择第 21 个日期,那么它应该在下一个选择器中显示 21 到 23 个日期,依此类推。按照我编写的代码可以正常工作,但不能使用上述功能。

$('.datePickerStart').datetimepicker({
    format: 'DD-MM-YYYY',
    minDate: new Date()
}).on('dp.change', function(e){
    var parent = $($(this).parents('.row')[0]),
        endDate = parent.find('.datePickerEnd');
    endDate.data("DateTimePicker").minDate(e.date).show();
});

$('.datePickerEnd').datetimepicker({
    format: 'DD-MM-YYYY',
    minDate: new Date(),
    useCurrent: false
}).on('dp.change', function(e){
    var parent = $($(this).parents('.row')[0]),
        startDate = parent.find('.datePickerStart');
    startDate.data("DateTimePicker").maxDate(e.date);
});

任何帮助,将不胜感激。提前致谢。

4

1 回答 1

3

希望这可以帮助!

$(function() {
  $('.datePickerStart').datetimepicker({
  minDate: new Date()
  });
  $('.datePickerEnd').datetimepicker();
  $(".datePickerStart").on("dp.change", function(e) {
    $('.datePickerEnd').data("DateTimePicker").minDate(e.date);
      var dt = new Date(e.date);
      dt.setDate(dt.getDate() + 2);
      $('.datePickerEnd').data("DateTimePicker").maxDate(dt);
  });
});

小提琴

于 2019-12-19T06:13:13.463 回答