2013年4月22日 星期一

自製javascript 檢查日期功能

From Evernote:

自製javascript 檢查日期功能

原理:將日期丟到Date()產生日期物件,若是有問題的日期,從物件取出的年月日或與原來輸入的不一樣,同樣方法可以套用在時間檢查上。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=big5">
  <title></title>
  </head>
  <body>
<script>

function chk_date()
{
    //結果顯示物件初始
    result_obj = document.getElementById("result");
    result_obj.innerHTML="";
    //取得輸入日期字串
    d=document.getElementsByName('enter_date')[0].value;
    //若日期字串非數值或不等於YYYYMMDD就結束
    if(isNaN(d) || d.length != 8)
    {
        result_obj.innerHTML="日期格式有誤(YYYYMMDD)";
        return false;
    }
    //用日期字串產生日期物件,兩者再分別比對年月日是否一致
    a = new Date(parseInt(d.substr(0,4)),parseInt(d.substr(4,2))-1,parseInt(d.substr(6,2)));

    result_obj.innerHTML="日期物件:"+a+"<br>輸入日期:"+d;
    result_obj.innerHTML+="<br>物件的年:"+a.getFullYear()+"&nbsp;&nbsp;輸入的年:"+ parseInt(d.substr(0,4));
    result_obj.innerHTML+="<br>物件的月:"+(a.getMonth()+1)+"&nbsp;&nbsp;輸入的月:"+ parseInt(d.substr(4,2));
    result_obj.innerHTML+="<br>物件的日:"+a.getDate()+"&nbsp;&nbsp;輸入的日:"+ parseInt(d.substr(6,2));

    //比對年
    if(a.getFullYear() != parseInt(d.substr(0,4)))
    {
        result_obj.innerHTML+="<BR>輸入日期有誤";
    }
    //比對月
    else if(a.getMonth() != (parseInt(d.substr(4,2))-1))
    {
        result_obj.innerHTML+="<BR>輸入日期有誤";
    }
    //比對日
    else if(a.getDate() != parseInt(d.substr(6,2)))
    {
        result_obj.innerHTML+="<BR>輸入日期有誤";
    }
    else
    {
        result_obj.innerHTML+="<BR>輸入日期正確";
    }


}
</script>
<input type="text" size="20" name="enter_date">
<input type="button" value="submit" onClick="chk_date()">
<br>
<div id="result">
</div>
  </body>
</html>

沒有留言:

張貼留言