DateTimePicker-在给定期间添加天

时间:2018-08-24 16:49:27

标签: javascript jquery json datetimepicker

早上好。 我发现此代码符合我的目的:

$(function () {
  $('#CheckIn').datetimepicker({
    format: 'MM/DD/YYYY'
  });
  $('#CheckOut').datetimepicker({
    useCurrent: false,//Important! See issue #1075
    format: 'MM/DD/YYYY'
  });

  $("#CheckIn").on("dp.change", function (e) {
    if( e.date ){
      e.date.add(1, 'day');
    }
    $('#CheckOut').data("DateTimePicker").minDate(e.date);
  });

  $("#CheckOut").on("dp.change", function (e) {
    $('#CheckIn').data("DateTimePicker").maxDate(e.date);
  });

});

链接:Bootstrap datetimepicker add 1 day to mindate

但是我需要进行一些调整。我需要在某些时段添加天数。 我尝试过,但是没有成功:

$(function () { 
  $('#CheckIn').datetimepicker({
    format: 'MM/DD/YYYY'
  });
  $('#CheckOut').datetimepicker({
    useCurrent: false,//Important! See issue #1075
    format: 'MM/DD/YYYY'
  });

  $("#CheckIn").on("dp.change", function (e) {

        if(( e.date >= new Date(2018, 8, 01) && ( e.date <= new Date(2018, 8, 10)){
          e.date.add(3, 'day');
        }
        if(( e.date >= new Date(2018, 9, 01) && ( e.date <= new Date(2018, 9, 10)){
          e.date.add(5, 'day');
        }

  $('#CheckOut').data("DateTimePicker").minDate(e.date);
  });

  $("#CheckOut").on("dp.change", function (e) {
    $('#CheckIn').data("DateTimePicker").maxDate(e.date);
  });

});

有人可以帮忙吗? 预先感谢。

1 个答案:

答案 0 :(得分:1)

使用new Date(yyyy, mm, dd)创建日期时,mm(月)为0。即0是1月,11是12月。

因此,new Date(2018, 8, 01)将创建日期为2018年9月1日。

将您的代码更改为基于0的月份,它可以正常工作。小提琴-https://jsfiddle.net/0Ltv25o8/11721/

以下是语法:

new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
  

monthIndex

     

代表月份的整数值,从0到1月到   12月11日。

有关更多详细信息,请检查-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date