2012-09-09 135 views
1

可能重複:
Compare dates with JavaScript如何兩個日期比較的JavaScript

我有兩個日期,開始日期和結束日期。我比較它們是這樣的:

var fromDate = $("#fromDate").val(); 
var throughDate = $("#throughDate").val(); 

if (startdate >= enddate) { 
    alert('start date cannot be greater then end date') 
} 

它給出正確的結果......唯一的問題是,當我比較的日期2013年1月1日和2014年1月1日。

如何正確比較JavaScript中的日期?

+0

未來:http://bit.ly/QcITo9 – some

回答

3

您正在比較字符串。您需要先將它們轉換爲日期。您可以通過拆分的字符串並構建new Date

new Date(year, month, day [, hour, minute, second, millisecond]) 

根據您的日期格式做到這一點,看起來像

var parts = "01/01/2013".split("/"); 
var myDate = new Date(parts[2], parts[1] - 1, parts[0]); 
5

你可以用它來獲取比較:

if (new Date(startDate) > new Date(endDate)) 

使用new Date(str)分析值並將其轉換爲Date對象。

+0

完全適合我!謝謝! –

0
 var fromDate = $("#fromDate").val(); 
     var toDate = $("#throughDate").val(); 

    //Detailed check for valid date ranges 
     //if your date is like 09-09-2012 
    var frommonthfield = fromDate.split("-")[1]; 
    var fromdayfield = fromDate.split("-")[0]; 
    var fromyearfield = fromDate.split("-")[2]; 


    var tomonthfield = toDate.split("-")[1]; 
    var todayfield = toDate.split("-")[0]; 
    var toyearfield = toDate.split("-")[2]; 


    var fromDate = new Date(fromyearfield, frommonthfield-1, fromdayfield); 
    var toDate = new Date(toyearfield, tomonthfield-1, todayfield); 

    if(fromDate.getTime() > today.getTime()){ 
     alert("from Date should be less than today") 
     return; 
    } 
    if(toDate.getTime() > today.getTime()){ 
     alert("to Date should be less than today") 
     return; 
    } 
    if(fromDate.getTime() > toDate.getTime()){ 
     alert("from date should be less than to date") 
     return; 
    }