2013-07-05 179 views
0

大家好,JQuery的/ JavaScript的:开始和阵列中的结束日期,结束日期必须大于开始日期

我建立一个网站预订一个共同的房间。

它具有开始日期字段和结束日期字段的表单。

您可以根据需要添加尽可能多的开始日期和结束日期。

当数据被提交我有所有的开始日期的数组,并与所有的结束日期另一个数组。

澄清:

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],否则错误警报和出口

我怎样才能做到这一点?

谢谢!

+0

您的日期可以小于今天的日期.i.e无论日期为今天,是否有机会获取低于该日期的日期 –

+0

请参阅http://stackoverflow.com/questions/492994/compare-dates-with-javascript – krampstudio

回答

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'); 
    } 
} 
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有相同数量的元素(但后来,你的问题没有按”如果他们不这样做,他们会觉得很有意义)。

相关问题