2015-12-24 34 views
2

我有一個表單,我從輸入標記中獲取兩個日期。我需要驗證並比較一個日期應該總是大於另一個日期。這裏是javascript如下:使用Javascript比較數組中的兩個日期

function validateDD(gateout_plnd_dt){ 
    var dt_pat = /^[0-9]{2}-[0-9]{2}-[0-9]{4}$/; 
    var alpha = /^[a-zA-Z0-9\s\.\-]+$/ 
    var int = /^[0-9.]+$/; 
    var gateout_plnd_dt = document.getElementsByName('gateout_plnd_dt[]'); 
    var gate_in_dt = document.getElementsByName('gate_in_dt[]'); 


    for(var i=0,j=0; i<gateout_plnd_dt.length,j<gate_in_dt.length; i++,j++){ 



     if(gateout_plnd_dt[i].value< gate_in_dt[j].value){ 
     alert((gateout_plnd_dt[i].value)); 
     alert(gate_in_dt[j].value); 
     return false; 
     } 
     } 


    } 

我需要將它從字符串轉換爲日期對象,我無法這樣做。完成任務會很有幫助。謝謝。

+1

退房時刻的js ..它基於日期格式 – James

+0

解析器將它在陣列工作? – Amlan

回答

1

試試這個

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

    out_date = gateout_plnd_dt[i].split("-"); 
    in_date = gate_in_dt[i].split("-"); 
    gateout_date = new Date(out_date[1],out_date[0],out_date[2]).getTime() 
    gatein_date = new Date(in_date[1],in_date[0],in_date[2]).getTime() 

    if(gateout_date < gatein_date){ 
    alert(gateout_plnd_dt[i]); 
    alert(gate_in_dt[i]); 
    return false; 
    } 
} 
+0

更改拆分( - )拆分(「 - 」); @ Preethi馬諾 –

+0

謝謝@ krishnamurali.I已更新它 –

+0

@ user3445158你試過這個 –

0

將日期轉換爲時間戳。出於這個原因,我不會建議使用庫。

function datetotimestamp(date){ 
    var date=date.split("-"); 
    var newd=date[1]+"/"+date[0]+"/"+date[2]; 
    return new Date(newd).getTime(); 
    } 

的console.log(datetotimestamp( 「26-02-2012」)< datetotimestamp( 「25-02-2012」))//返回false

比較兩個或更多在數組值,使用一個額外的功能

var compareinarray = function(array) { 
    for(var i = 1; i < array.length; i++) { 
     if(datetotimestamp(array[i]) > datetotimestamp(array[i-1])) 
      return false; 
    } 
    return true; 
} 

var arr = ["26-02-2012", "23-02-2012"]; 
var res = compareinarray(arr); 
console.log(res) 

更新compareinarray功能變種,根據你的情況和陣列的複雜性。

+0

這將適用於單日期輸入,但在數組中失敗 – Amlan

+0

好的,我更新了答案 –

1

試試這個我適合你。

var parts ='you string'.split("-"); 
var mydate = new Date(parts[2],parts[0],parts[1]); 
+0

我的日期字符串是以mm-dd-yyyy格式 – Amlan

+0

我已編輯它讓我知道。如果這對您有用@ @ user3445158 –

+0

它適用於單日期輸入表單,但不適用於具有多個日期的輸入數組。在控制檯部分的Inspect元素的checikng上,它顯示「'你string'.split(」 - 「);不是一個函數」 – Amlan