2013-07-05 185 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有相同數量的元素(但後來,你的問題沒有按」如果他們不這樣做,他們會覺得很有意義)。

相關問題