1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title>h5compareDate</title> 6 </head> 7 <body> 8 <form name="form1" action="compareDate.html" method="post" onSubmit="return compareDoubleDate()"> 9 <input type="text" name="date1"> 10 <input type="text" name="date2"><br> 11 <input type="submit" value="提交"> 12 </form> 13 </body> 14 <script type="text/javascript"> 15 function compareDoubleDate(){ 16 var d1 = document.forms["form1"]["date1"].value; 17 var d2 = document.forms["form1"]["date2"].value; 18 //alert(d1); 19 //alert(d2); 20 if (d1 == null || d1 == ""){ 21 alert("日期必填"); 22 return false; 23 } 24 if (d2 == null || d2 == ""){ 25 alert("日期必填"); 26 return false; 27 } 28 29 if (!verifyDate(d1)){ 30 alert("日期1格式不对"); 31 return false; 32 } 33 if (!verifyDate(d2)){ 34 alert("日期2格式不对"); 35 return false; 36 } 37 38 if (!checkDate(d1)){ 39 alert("日期1不合法"); 40 return false; 41 } 42 if (!checkDate(d2)){ 43 alert("日期2不合法"); 44 return false; 45 } 46 47 return compareDate(d1, d2); 48 49 } 50 <!-- 先验证格式是否正确--> 51 function verifyDate(date){ 52 var regExp = /^d{4}-0?[1-9]|1[0-2]-0?[0-9]|[1-2]d|3[0-1]$/;//js正则表达式,千万不要加引号 53 return regExp.test(date); 54 } 55 56 <!-- 日期是否合法,格式正确后,关键要看瑞年2不能超过29天,平年二月不能超过28天,小月不能超过30天,--> 57 function checkDate(date){ 58 var arrDate1 = date.split("-"); 59 var year = Number(arrDate1[0]); 60 var month = Number(arrDate1[1]); 61 var day = Number(arrDate1[2]); 62 //document.write(year); 63 if (month == 4 || month == 6 || month == 9 || month == 11){ 64 if (day > 30){ 65 alert("日期不合法,"); 66 return false; 67 } 68 } 69 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ){ 70 if (month == 2 && day > 29){ 71 alert("日期不合法,瑞年2月最大29天"); 72 return false; 73 } 74 75 }else{ 76 if (month == 2 && day > 28){ 77 alert("日期不合法,平年2月最大28天"); 78 return false; 79 } 80 } 81 return true; 82 } 83 84 function compareDate(d1, d2){ 85 var arrDate1 = d1.split("-"); 86 var date1 = new Date(arrDate1[0], arrDate1[1], arrDate1[2]); 87 var arrDate2 = d2.split("-"); 88 var date2 = new Date(arrDate2[0], arrDate2[1], arrDate2[2]); 89 if (date1 > date2){ 90 alert("前一个日期应不大于后一个日期"); 91 return false; 92 } 93 return true; 94 } 95 </script>