2013-03-18 159 views
1

我有2個文本框是期望的日期格式mm/dd/yyyy 例:驗證日期範圍客戶端

03/20/2013 

之前,我甚至懶得去Ajax調用,我想嘗試把這些變成JS日期。我怎麼能檢查:

Both Dates are in the mm/dd/yyyy format and if they are, then From must be less than to. 

感謝

+0

通常情況下,我會與通常的「你嘗試過什麼」,而是因爲我希望很多人會作出迴應爲了嘗試這個,我會發佈一個答案。 – 2013-03-18 19:19:22

回答

1

我推薦使用時刻爲這一個。 Moment是一個js庫,尤其適用於日期和評估日期。你的兩個文本框以字符串開頭,所以你需要初始化2 moment()。然後驗證它們都是時刻對象。如果是這樣,那麼確保一個在另一個之後是一件簡單的事情。

這裏的鏈接到時刻:http://momentjs.com/

這裏的代碼,我可以使用:

var tb1 = $("#tb1").text(); // get string from "date box 1" 
var tb2 = $("#tb2").text(); // get string from "date box 2" 

//get timestamp val's so they can be used in moment initialization 
var date1 = tb1.split("/"); 
var date2 = tb2.split("/"); 

    //create moments  
var mom1 = moment([date1[2], date1[1], date1[0]); 
var mom2 = moment([date2[2], date2[1], date2[0]); 

function validate(mom1, mom2){ 
    //validate both dates are actual dates 
if (mom1.isValid() && mom2.isValid()){ 
      //compare timestamps to ensure 2nd timestamp is larger 
    if(mom1.unix() < mom2.unix()){ 
     return true; 
    } else { 
     return false; 
    } 
} else { 
      //strings aren't dates, return error 
    $.error("not valid dates"); 
} 
} 
+0

有一個更簡單的啓動時刻,但爲了用戶的利益,我用更好的方式顯示發生了什麼。你也可以這樣初始化:'var mom1 = moment($(「#tb1」),「MM/DD/YYYY」);' – 2013-03-18 19:24:24