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()+" 輸入的年:"+ parseInt(d.substr(0,4));
result_obj.innerHTML+="<br>物件的月:"+(a.getMonth()+1)+" 輸入的月:"+ parseInt(d.substr(4,2));
result_obj.innerHTML+="<br>物件的日:"+a.getDate()+" 輸入的日:"+ 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>
<!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()+" 輸入的年:"+ parseInt(d.substr(0,4));
result_obj.innerHTML+="<br>物件的月:"+(a.getMonth()+1)+" 輸入的月:"+ parseInt(d.substr(4,2));
result_obj.innerHTML+="<br>物件的日:"+a.getDate()+" 輸入的日:"+ 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>
沒有留言:
張貼留言