JQuery / Javascript:数组中的开始和结束日期,结束日期必须大于开始日期

时间:2013-07-05 11:57:59

标签: javascript jquery arrays validation

大家好,

我正在建立一个网络来预订一个公共休息室。

它有一个带有开始日期字段和结束日期字段的表单。

您可以根据需要添加任意数量的开始日期和结束日期。

提交数据时,我有一个包含所有开始日期的数组和另一个包含所有结束日期的数组。

澄清:

Begin dates             Ending dates
01-07-2013              03-07-2013
04-07-2013              10-07-2013

arrayBeginDates ["01-07-2013","04-07-2013"]

arrayEndDates ["03-07-2013","10-07-2013"]

我的代码中形成数组的方式:

var arrayBeginDates = [];
$(".beginDate").each(function(){
    arrayBeginDates.push($(this).val());
})

//and the same for ending dates, arrayEndDates

我需要验证在结束日期结束日期结束日期大于开始日期。

意义:

arrayEndDates [0]必须大于arrayBeginDates [0]否则会出现错误提示并退出 arrayEndDates [1]必须大于arrayBeginDates [1]否则会出现错误提示并退出

等等

我该怎么做?

非常感谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

var bDates = ["01-07-2013","04-07-2013"];
var eDates = ["03-07-2013","10-07-2013"];

for (var i = 0; i < bDates.length; i++) {
   if ((new Date(eDates[i].split('-').reverse().join(','))) > (new Date(bDates[i].split('-').reverse().join(',')))) {
      console.log('valid');
   } else {
      console.log('invaid');
   }
}

答案 1 :(得分:0)

如下所示:

arrayBeginDates.each( function(index, beginDate) {
    var begin = new Date(beginDate).setHours(0,0,0,0);
    var end = new Date(arrayEndDates[index]).setHours(0,0,0,0);

    if (begin > end)
        //handle Error
});

注意:这要求arrayStartDates和arrayEndDates具有相同数量的元素(但是,如果他们不这样做,你的问题就没有多大意义。