如何在JavaScript中比较两个日期

How to compare two dates in JavaScript

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Compare dates with JavaScript

我有两个日期,开始日期和结束日期。我是这样比较的:

1
2
3
4
5
6
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中正确比较日期?


您可以使用此项进行比较:

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

使用new date(str)解析该值并将其转换为日期对象。


您正在比较字符串。你需要先把它们转换成日期。您可以通过拆分字符串并构造新日期来完成此操作。

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

根据您的日期格式,它看起来像

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        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;
    }