如果我想根据第一个选择的日期设置另一个日期选择器,如何管理两个日期选择器? Bootstrap 日期选择器

How do I manage two datepickers if I want to set another datepicker according to date selected in first? Bootstrap datepicker

这是我的代码。我想根据第一个日期选择器中选择的日期设置日期。我该怎么做?

<input type="text" placeholder="From" class="week" id="dt1">
<input type="text" placeholder="To" class="week" id="dt2">

$(function() {
  $("#dt1").datepicker({
    minDate: "-",
    maxViewMode: "weeks",
    format: "dd-mm-yy",
    clearBtn: true,
    orientation: "bottom auto"
      /*calendarWeeks: true,
      todayHighlight: true*/
  });

  $("#dt2").datepicker({
    minDate: 0,
    format: 'dd-mm-yyyy',
    endDate: "today"
  })
});

好的,所以根据给定的选项,您只需要 "listen" 当日期发生变化时,这基本上就是提供的事件所做的,所以我们将在两个 #From 上使用 changeDate #To 选择器只允许 select 那一周的日期。

注意 1: 我建议您禁用 #To 以避免选择器日期提前,但没有它应该是一样的。

注2:我删除了你注释掉的代码

<input type="text" placeholder="From" class="week" id="dt1">
<input type="text" placeholder="To" disabled="disabled" class="week" id="dt2">

$(function() {
  $("#dt1").datepicker({
    minDate: "-",
    maxViewMode: "weeks",
    format: "dd-mm-yy",
    clearBtn: true,
  }).on('changeDate', function(event) {
    $('#dt2').removeAttr('disabled'); //We enable our #To Picker
    var newDate = new Date(event.date);
    newDate.setDate(newDate.getDate() + 6); //We add 6 days to our selected date
    $("#dt2").datepicker("setStartDate", event.date); //Set as start point that selected day 
    $("#dt2").datepicker("setEndDate", newDate); //Set the final "MaxDate

  });
   //We do the same for this one but backwards to avoid puttin "invalid" dates
  $("#dt2").datepicker({
    minDate: 0,
    format: 'dd-mm-yyyy',
    endDate: "today"
  }).on('changeDate', function(event) {
    var newDate = new Date(event.date);
    newDate.setDate(newDate.getDate() - 6);

    //You can alway remove this line to allow your user to select any start date
    $("#dt1").datepicker("setStartDate", newDate);
    //And here we set our max date on From picker so he doesn't again enter "invalid" dates
    $("#dt1").datepicker("setEndDate", event.date);

  });
});