检查数组中的日期是否在日期范围内(JS)

时间:2018-01-22 18:08:14

标签: javascript jquery date datetime range

首先,我有一个包含日期的var(目前只有一个):

var disableddates = ["26-05-2018"];

现在我想检查这个日期是否在某个日期范围内。开始日期和结束日期将来自一个datepicker(使用Jquery日历插件)。这些日期的处理方式如下:

抵达日期:

//Get arrival date from datepicker
function aankomstdatumInput() {
    aankomstDatum = document.getElementById("aankomstdatum").value;
    document.getElementById("aankomst").innerHTML = aankomstDatum;
    var parts = aankomstDatum.split('-');
    aankomstDatumDate = new Date(parts[2],parts2[1]-1,parts2[0]);
}

出发日期:

//Get departure date from datepicker
function vertrekdatumInput() {
    vertrekDatum = document.getElementById("vertrekdatum").value;
    document.getElementById("vertrek").innerHTML = vertrekDatum;
    var parts2 = vertrekDatum.split('-');
    vertrekDatumDate = new Date(parts2[2],parts2[1]-1,parts2[0]);
}

现在我需要一个函数来检查disableddates数组中的每个日期,如果它在aankomstDatumDate和vertrekDatumDate的范围内。

由于这两个日期的制定方式如下:2018年5月5日2018 00:00:00 GMT + 0200(浪漫夏令时),我首先必须在相同的配方中设置禁用日期,所以我启动了这个功能像这样:

function checkDisabledDate{
var parts3 = disableddates.split('-');
disabledDatumDate = new Date(parts3[2],parts3[1]-1,parts3[0]);
}

我认为这是一个很好的第一步,但后来我坚持如何检查disabledDatumDate是否介于aankomstDatumDate和vertrekDatumDate之间然后启动和否/如果取决于禁用日期是否在到达日期和出发日期之间或不。

感谢您的投入!

1 个答案:

答案 0 :(得分:0)

function checkDisabledDate{

    for(var i = 0; i < disableddates.length; i++){

      var parts3 = disableddates.split('-');
      disabledDatumDate = new Date(parts3[2],parts3[1]-1,parts3[0]);
      var diff1 = vertrekDatumDate - disabledDatumDate;
      var diff2 = vertrekDatumDate - aankomstDatumDate;
      if(diff2 > diff1){

        //disabledDatumDate within date range
        //do something

      }

    }

}