我这有两个javascript函数,直接用就可以了,应该能解决你的问题了。
根据你的具体情况来确定选哪个。/*==================================================================*/
/*  function isDateABigerThanB(a_Year, a_Month, a_Day,b_Year,b_Month,b_Day)
    比较两个时间的大小
/*==================================================================*/function isDateABigerThanB(a_Year, a_Month, a_Day,b_Year,b_Month,b_Day)
{
    var a_y, a_m, a_d, b_y, b_m, b_d;
    a_y = new Number(a_Year.value);
    a_m = new Number(a_Month.value);
    a_d = new Number(a_Day.value);
    b_y = new Number(b_Year.value);
    b_m = new Number(b_Month.value);
    b_d = new Number(b_Day.value);
    if(a_y > b_y)
    {
        return true;
    }
    else if( a_y - b_y < 1 && a_y - b_y > -1  )
    {
         if(a_m > b_m)
        { 
            return true;
        }
        else if( a_m - b_m < 1 && a_m - b_m > -1  )
        {
            if(a_d > b_d)
            { 
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    else
    {
        return false;
    }
}/*==================================================================*/
/*  function isDateABigThanB_other(adate,bdate)
     比较两个时间的大小
/*==================================================================*/
function isDateABigThanB_other(adate,bdate)
{
var exp1 = adate.value;
var exp2=bdate.value;
    var re = new RegExp("/|-");
var col1 = exp1.split(re);       
var col2 = exp2.split(re);
    var  ma, da, ya;
var  mb, db, yb;
ya=new Number(col1[0]);
ma=new Number(col1[1]);
da=new Number(col1[2]);
yb=new Number(col2[0]);
mb=new Number(col2[1]);
db=new Number(col2[2]);    if (ya>yb){
      return true;
    }else 
    if (ya<yb){
     return false;
     }else
        {
     if (ma>mb){
return true;
}else 
if (ma<mb){
return false;
}else
                {
if (da>=db) 
return true;
else
return false;
}
       }
}

解决方案 »

  1.   

    老哥,可是,我没有日期格式化,是一个字符string,如‘mm/dd/yyyy','03/20/2002',这样的,这俩个字符string,应如何比较大小
    呀?谢谢了,老哥!
      

  2.   

    判断有效日期,你可以使用
    Date a=new Date(Str);str是你要判断的字符串格式为:XXXX/XX/XX
      

  3.   

    try
      {
        var Today=new Date(Str);
      }
      catch(exception)
        {
          window.alert("日期格式不合法");
        } 
      

  4.   

    我如下的代码,但是仍然有问题,谢谢大家
    var d1,d2;
      d1=new Date(document.frmEventNew.AlertTime.value);  
      d2=new Date(document.frmEventNew.CompleteDate.value);
      if (d1>d2)
      {
      alert("预警日期不能大于完成日期,请输入一个合法的时间!");    
        document.frmEventNew.AlertTime.focus ();
        return ;
      }
      

  5.   

    这下可以吧。
    <Script>
      try
      {
        var Today=new Date("1000000");
        if(Today=="NaN")
          throw Exception;
      }
      catch(Exception)
        {
          window.alert("日期格式不合法");
        } 
    </Script>
      

  6.   

    /*==================================================================*/
    /*  function isDateNull(field) 
    判断input text 的是否是日期格式, 
        接受的格式为yyyy/mm/dd , yyyy-mm-dd. mm/dd/yyyy, mm-dd-yyyy. 
    return: true or false
    /*==================================================================*/function isDate(field){
    /* YYYY/MM/DD or MM/DD/YYYY */
    var exp = trim(field.value);
        var re = new RegExp("/|-");
        var col = exp.split(re);       
        var i, m, d, y;
        var charcode;  
      
    if(exp!="")
    {
    if(field.value.length<3)    return false;   //不合法的日期
        
           switch(col[0].length){                  
            case 4:                         //日期格式为 yyyy-mm-dd
         for(i=0; i<4; i++){
         charcode = col[0].charCodeAt(i);
    if(charcode < 48 || charcode > 57)
    return false;
                          }    
         y = new Number(col[0]); //年份
         m = new Number(col[1]);     //月份
    d = new Number(col[2]);     //日期
                
            if(y <= 1900 || y >=3000){
                 alert("年份必须大于1900年,小于3000年!");
                return false;
                      
                                              }
         if(isNaN(m) || m > 12 || m < 1)
         return false;
         if(isNaN(d) || d > 31 || d <= 0)
         return false;         
    if(col[1].length > 2 || col[2].length > 2 )    
    //日期格式必须为 yyyy-mm-dd
    return false;
         break;
        
         case 1:    
         case 2:                             //日期格式为 mm-dd-yyyy
         for(i=0; i<col[2].length; i++){
         charcode = col[2].charCodeAt(i);
    if(charcode < 48 || charcode > 57)
      return false;
                                            }     
         y = new Number(col[2]);
         m = new Number(col[1]);
         d = new Number(col[0]);    if(y <= 1900 || y >=3000){
                   alert("年份必须大于1900年,小于3000年!");
                    return false;
                                      }
               if(isNaN(m) || m > 12 || m < 1)
         return false;
            if(isNaN(d) || d > 31 || d <= 0)
         return false;              
               
               if(col[1].length>2||col[2].length>2)
    return false;
         break;
         default:
         return false;      
                  }    
        /* check date integrety */            
        
                 if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
                 {
            if(d > 31 || d < 0){          
    return false;
        }     
         }else if( m == 4 || m == 6 || m == 9 || m == 11 ){
        if(d > 30 || d < 0){          
        return false;
        }
         } 
     else if( m == 2)
     {        
        var bYear = false;
       
        if(y % 4 == 0 && y % 100 !=0){
        bYear = true;
                          } 
             else {
        if(y % 400 == 0)
        bYear = true;
        else
                    bYear = false;
                       }
                 if(bYear)
                      {
        if(d > 29)
        return false;
                          } 
                       else {
        if(d > 28)
        return false;
                   }    
         } else 
             {
    return false;
                    }        
        return true;
    }
    }