日期型的格式要求为: yyyy-mm-dd

解决方案 »

  1.   

    stringDt1 = document.getElementById( "Dt1" );
    stringDt2 = document.getElementById( "Dt2" );var pattern = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;if( !pattern.test(stringDt1) ) alert( "dt1 invalid." );
    if( !pattern.test(stringDt2) ) alert( "dt2 invalid." );
    var current = new Date(); 
    var today= new Date(current.getYear(),current.getMonth(),current.getDate()); dt1=stringDt1.replace(/-/g,"/")
    dt1=new Date(dt1);
    dt2=stringDt2.replace(/-/g,"/")
    dt2=new Date(dt2);if (! (Date.parse(dt1)-Date.parse(today)>0 )){
        alert("Dt1 <= today");
    } if (! (Date.parse(dt2)-Date.parse(dt1)>0 )){
        alert("Dt2 <= dt1");
      

  2.   

    日期有个验证简单些,网上的,大小比较就很简单了,可以直接当字符传比较<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <script language=javascript>
    String.prototype.isTime = function()
    {
      var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/); 
      if(r==null)return false; var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],0); 
      return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]);
    }
    alert("2002-1-31 12:34".isTime());
    alert("2001-2-29 12:54".isTime());
    alert("2002-1-41 12:00".isTime());String.prototype.isDate = function()
    {
      var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
      if(r==null)return false; var d = new Date(r[1], r[3]-1,r[4]); 
      return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
    }
    alert("2002-1-31".isDate());
    alert("2001-2-29".isDate());
    alert("2002-1-41".isDate());
    </script>
    </HEAD><BODY></BODY>
    </HTML>
      

  3.   

    有没有简单一点的?像vbs中就有 isdate 函数
      

  4.   

    mingxuan3000(铭轩)  的isTime()不是直接可以调用吗?你又不用涉及到正则的部分。汗
      

  5.   

    <script language="JavaScript">
    <!--
    var d = new Date();
    var od = new Date("2003/09/20");
    alert(d+"   "+od);
    alert(d-od);
    if (d-od>0){
      alert(">");
    }else{
      alert("<"); 
    }
    //-->
    </script>
      

  6.   

    <script>
    function CompareDate(d1,d2)
    {
      return ((new Date(d1.replace(/-/g,"\/"))) > (new Date(d2.replace(/-/g,"\/"))));
    }var current_time = "2007-2-2 7:30";
    var stop_time = "2007-1-31 8:30";
    alert(CompareDate(current_time,stop_time));</script>
      

  7.   

    <script language="javascript">
    <!--
    function isValidDateFormat(str){
    var reg = /^\d{4}-\d{2}-\d{2}$/;
    if(!reg.test(str)) return false;
    var d = new Date(str.replace(/-/g,"/"));
    var ar = [];
    str.replace(/\d+/g,function(p){ar.push(parseInt(p,10));})
    if(d.getFullYear()!=ar[0] || d.getMonth()!=ar[1]-1 || d.getDate()!=ar[2] ) return false;
    return true;
    }
    function isGreatThanDate(d1,d2){
    return d1.valueOf() > d2.valueOf();
    }
    function dateCompare() {
        /*
          1.验证开始日期和结束日期必须为日期型的格式
          2.验证开始日期必须大于今天
          3.验证结束日期必须大于开始日期
        */
        var frm = document.forms['tform'];
        var sDate = frm.elements['dateStart'].value;
        var eDate = frm.elements['dateEnd'].value;
        if(!isValidDateFormat(sDate)){ alert("dateStart is invalid"); return false;}
        if(!isValidDateFormat(eDate)){ alert("dateEnd is invalid"); return false;}    sDate = new Date(sDate.replace(/-/g,"/"));
        eDate = new Date(eDate.replace(/-/g,"/"));
        if(!isGreatThanDate(sDate,new Date())) { alert("dateStart must great then today"); return false;}
        if(!isGreatThanDate(eDate,sDate)){ alert("dateEnd must great then dateStart."); return false;}
    return true;}
    -->
    </script><form method="POST" action="" name="tform" onsubmit="return dateCompare()">
    开始日期:<input type="text" name="dateStart" size="10" value="2007-05-20">
    结束日期:<input type="text" name="dateEnd" size="10" value="2006-05-20">
    <input type="submit" />
    </form>