各位大哥:
这是我在网上找的代码,但是不好用,我也没改好,请各位大哥帮忙改一改
谢谢!
1<html>
2<head>
3<title>date</title>
4<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
5</head>
6<body>
7<script language="JavaScript" type="text/JavaScript">
8function chkdate()
9{
10var datestr;
11datestr=form1.tom.value;
12var lthdatestr;
13if (datestr != "")
14{lthdatestr= datestr.length} ;
15else
16{lthdatestr=0};
17var tmpy="";
18var tmpm="";
19var tmpd="";
20var status;
21status=0;
22if ( lthdatestr== 0)
23{return (false)};
24for (i=0;i<lthdatestr;i++)
25{ if (datestr.charAt(i)== '-')
26{
27status++;
28alert("bbb")
29}
30if (status>2)
31{
32return (false);
33}
34if ((status==0) && (datestr.charAt(i)!='-'))
35{
36tmpy=tmpy+datestr.charAt(i);
37}
38if ((status==1) && (datestr.charAt(i)!='-'))
39{
40tmpm=tmpm+datestr.charAt(i);
41}
42if ((status==2) && (datestr.charAt(i)!='-'))
43{
44tmpd=tmpd+datestr.charAt(i);
45}
46
47}
48year=new String (tmpy);
49month=new String (tmpm);
50day=new String (tmpd);
51if ((tmpy.length!=4) ¦ ¦ (tmpm.length!=2) ¦ ¦ (tmpd.length!=2))
52{
53return (false);
54}
55if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
56{
57return (false);
58}
59if (!((year % 4)==0) && (month==2) && (day==29))
60{
61return (false);
62}
63if ((month<=7) && ((month % 2)==0) && (day>=31))
64{
65return (false);
66
67}
68if ((month>=8) && ((month % 2)==1) && (day>=31))
69{
70return (false);
71}
72if ((month==2) && (day==30))
73{
74return (false);
75}
76return (true);
77}
78</script>
79<form action="02.asp" language="JavaScript" method="POST" name="form1">
80<input 10"="" name="tom" size="20" style="font-size: 9PT; color: #000000; border: 1px solid #000000; padding: 0; maxlength=" type="text"/>
81<input name="Button" onclick="chkdate()" type="button" value="Button"/>
82</form>
83</body>
84</html>
---------------------------------------------------------------
//判断日期型
function IsDate(DateString , Dilimeter)
{
if (DateString==null) return false;
if (Dilimeter=='' ¦ ¦ Dilimeter==null) Dilimeter = '-';
var tempy='';
var tempm='';
var tempd='';
var tempArray;
if (DateString.length<8 ¦ ¦ DateString.length>10) return false;
tempArray = DateString.split(Dilimeter);
if (tempArray.length!=3) return false;
//if (tempArray[0].length==4)
//{
tempy = tempArray[0];
tempd = tempArray[2];
//}
//else
//{
// tempy = tempArray[2];
// tempd = tempArray[1];
//}
tempm = tempArray[1];
var tDateString = tempy + '/'+tempm + '/'+tempd;
var tempDate = new Date(tDateString);
if (isNaN(tempDate)) return false;
if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==myparseInt(tempm)-1) && (tempDate.getDate()==myparseInt(tempd)))
{
return true;
}
else
{
return false;
}
}
//去掉月份或日期前的0,比如2003-02-04 ->2003-2-4
function myparseInt(num)
{
var tempnum=num + "";
while(tempnum.substr(0,1)=="0") {
tempnum=tempnum.substr(1);
}
return(parseInt(tempnum));
}
---------------------------------------------------------------
以前写的一个可以自由指定日期格式的:
1<script language="JavaScript">
2<!--
3function getDateByMask(s,m){
4if (s.length!=m.length){
5return false;
6}
7try{
8m=m.replace(/Y/g,"y").replace(/D/g,"d");
9if (m.indexOf("yyyy")>-1)
10return new Date(
11s.substr(m.indexOf("yyyy"),4),
12s.substr(m.indexOf("MM"),2)-1,
13s.substr(m.indexOf("dd"),2)
14)
15else return new Date(
16s.substr(m.indexOf("yy"),2),
17s.substr(m.indexOf("MM"),2)-1,
18s.substr(m.indexOf("dd"),2)
19)
20}
21catch (e)
22{
23return null;
24}
25}
26
27/**************************** test: *************************************/
28alert(getDateByMask("2002/02/01","yyyy/MM/dd"))
29alert(getDateByMask("02/02/01","yy/MM/dd"))
30
31function checkDateByMask(s,m){
32if (s.length!=m.length){
33return false;
34}
35try{
36var d = getDateByMask(s,m)
37m=m.replace(/Y/g,"y").replace(/D/g,"d");
38if (m.indexOf("yyyy")>-1)
39return (
40d.getFullYear() == s.substr(m.indexOf("yyyy"),4)
41&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
42&& d.getDate() == s.substr(m.indexOf("dd"),2)
43)
44else return (
45d.getYear() == s.substr(m.indexOf("yy"),2)
46&& d.getMonth() == s.substr(m.indexOf("MM"),2)-1
47&& d.getDate() == s.substr(m.indexOf("dd"),2)
48)
49}
50catch (e)
51{
52return false;
53}
54}
55
56/**************************** test: *************************************/
57alert(checkDateByMask("2002/02/01","yyyy/MM/dd"))
58alert(checkDateByMask("02/02/01","yy/MM/dd"))
59alert(checkDateByMask("2002/13/01","yyyy/MM/dd"))
60alert(checkDateByMask("02/02/30","yy/MM/dd"))
61
62
63//-->
64</script>
注意在日期格式中,MM表示月而mm表示分。
---------------------------------------------------------------
日期输入验证与自动纠错:
http://jkisjk.vip.sina.com/code/html/forCheckDateInput.htm
更多,如日历等:
http://jkisjk.vip.sina.com/code/html/index.html
---------------------------------------------------------------
1<script language="vbscript">
2
3alert(IsDate("2002-12-10"))
4
5</script>
IsDate 即可。
或者在Vbscript 里改写一下,在javascript里面调用,更简单。IsDate功能很强大,象2002/12/10 2002-12-10 2003-11-15:12:45 都能认识
1<script language="vbscript"></script>