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; } |