比较两个时间的大小
var a = "2012-02-01 16:05:45";
var b = "2012-01-31 14:13:11";
为什么结果会是a<b呢?function compareTime(startDate,endDate) {  

   var startDateTemp = startDate.split(" ");  
   var endDateTemp = endDate.split(" ");  
   
   var arrStartDate = startDateTemp[0].split("-");  
   var arrEndDate = endDateTemp[0].split("-");  
   
   var arrStartTime = startDateTemp[1].split(":");  
   var arrEndTime = endDateTemp[1].split(":");  
 
   var allStartDate = new Date(arrStartDate[0], arrStartDate[1], arrStartDate[2], arrStartTime[0], arrStartTime[1], arrStartTime[2]);  
   var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2], arrEndTime[0], arrEndTime[1], arrEndTime[2]);   if (allStartDate.getTime() <= allEndDate.getTime()) {  
       //alert("startTime不能大于endTime,不能通过");  
       return true;  
   }
}

解决方案 »

  1.   

    Thu Mar 01 2012 16:05:45 GMT+0800*********Fri Mar 02 2012 14:13:11 GMT+0800
    你中间写错了  allStartDate 、allEndDate得到的时间是上面两个 
      

  2.   

    if (allStartDate.getTime() <= allEndDate.getTime()) {  
    给成用valueOf 比较,比较毫秒数
    if (allStartDate.valueOf() <= allEndDate.valueOf()) { 
      

  3.   

    new Date("2012","01","31","14","13","11")怎么出来Fri Mar 02 2012 14:13:11 GMT+0800,刚刚回答没经过测试。。
      

  4.   

    var a = "2012-01-01 16:05:45";
    var b = "2012-00-31 14:13:11";
    改成这样试试
    月份是从0开始的
    2012-02-01其实是三月一号
    2012-01-31其实是2月31号  2月没31号  所以移到三月2号(根据闰年而异)
      

  5.   

    哈哈 是2月没有31,不是bug
      

  6.   

    直接这样.
     function compareTime(startDate,endDate) {  
         var startdate = new Date(startDate);
         var enddate = new Date(endDate);
         if(startdate.valueOf() < enddate.valueOf())
         {
            return true;
         }
         return false;
    }