用JS判断日期格式YYYY-MM-DD要怎么写?

各位大哥:
这是我在网上找的代码,但是不好用,我也没改好,请各位大哥帮忙改一改
谢谢!

 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>
Published At
Categories with Web编程
comments powered by Disqus