0

大家好,

我正在建立一个网络来预订一个公共房间。

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

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

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

澄清:

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] 否则错误警报并退出

等等

我怎样才能做到这一点??

万分感谢!

4

2 回答 2

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');
   }
}
于 2013-07-05T12:11:59.343 回答
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 具有相同数量的元素(但是,如果它们不这样做,您的问题就没有多大意义)。

于 2013-07-05T12:13:02.897 回答