daterangepicker中的StartDate在第二个输入中不起作用

时间:2018-09-01 02:00:53

标签: javascript jquery datepicker momentjs daterangepicker

当我尝试在第一个输入中创建startDate时,它可以工作,但在第二个输入中需要startDate时,结果不起作用。 这是我的代码

$('.date-picker').daterangepicker({
  singleDatePicker: true,
  minDate: moment().subtract(1, 'years'),
  maxDate: moment().subtract(1, 'days'),
  locale: {
        format: 'DD-MM-YYYY'
      }
  }, function(chosen_date) {
      $('.date-picker').val(chosen_date.format('DD-MM-YYYY'));
    })

  $('.date-picker-2').daterangepicker({
    minDate: departpicker,
    /*why is not working?*/
    startDate: moment(departpicker, 'DD-MM-YYYY').add(6, 'days'),
    maxDate: moment(departpicker, 'DD-MM-YYYY').add(6, 'days')
})

这是我的完整代码Fiddle

我希望当我选择06-08-2018时,第二个输入中的startDate是12-08-2018。喜欢这张照片 enter image description here

2 个答案:

答案 0 :(得分:2)

您必须更改第二个日期时间选择器的开始日期。当前它设置为初始日期,希望对您有所帮助。

var drp = $('.date-picker-2').data('daterangepicker');
drp.setStartDate(moment(departpicker, 'DD-MM-YYYY').add(6, 'days'));

答案 1 :(得分:0)

作为minDate的{​​{1}},您只提供了第一个日期选择器输出的字符串...而不是日期对象。

这是我所做的更改:

.date-picker-2

我还评论了设置日期的其他尝试:

minDate: moment(departpicker, 'DD-MM-YYYY'),  //departpicker,
/*why is not working?*/

在下面可以正常工作:

//var drp = $('.date-picker-2').data('daterangepicker');
//drp.setStartDate(departpicker);
//drp.setEndDate(departpicker);
var autoupdate = false;

function date1(){
  $('.date-picker').daterangepicker({
    singleDatePicker: true,
    showDropdowns: true,
    minDate: moment().subtract(1, 'years'),
    autoApply: true,
    disabledDays: 'today',
    maxDate: moment().subtract(1, 'days'),
    autoUpdateInput: autoupdate,
    locale: {
      format: 'DD-MM-YYYY'
    }
  }, function(chosen_date) {
    $('.date-picker').val(chosen_date.format('DD-MM-YYYY'));
  });
}
date1();

$('.date-picker').on('apply.daterangepicker', function(ev, picker) {

  if ($('.date-picker').val().length == 0 ){
    autoupdate = true;
    console.log('true');
    date1();
  }
  var departpicker = $('.date-picker').val();
  
  $('.date-picker-2').daterangepicker({
    minDate: moment(departpicker, 'DD-MM-YYYY'),	//departpicker,
    /*why is not working?*/
    startDate: moment(departpicker, 'DD-MM-YYYY').add(6, 'days'),
    maxDate: moment(departpicker, 'DD-MM-YYYY').add(6, 'days'),
    singleDatePicker: true,
    showDropdowns: true,
    autoApply: true,
    locale: {
      format: 'DD-MM-YYYY'
    }
  });

  //var drp = $('.date-picker-2').data('daterangepicker');
  //drp.setStartDate(departpicker);
  //drp.setEndDate(departpicker);
});