JS日期比较

来源:互联网 发布:moment.js 时间差 编辑:程序博客网 时间:2024/06/06 16:36
  1. <html>  
  2. <head>  
  3. <script type="text/javascript">  
  4. /** 
  5.  * 检验日期合法性,日期格式yyyy-MM-dd 
  6.  * @param strDate 待检验的日期 
  7.  * @returns {Boolean} 如果日期合法返回true,否则返回false 
  8.  */  
  9. function checkDate(strDate) {  
  10.     if (strDate.length > 0) {  
  11.         var reg = /^(\d{2,4})-(\d{1,2})-(\d{1,2})$/g;  
  12.         if (!reg.test(strDate)) {  
  13.             return false;  
  14.         }  
  15.     }  
  16.     return true;  
  17. }     
  18. /** 
  19.  * 日期比较函数,给定的日期必须符合第一位年份,第二位月份,第三位日期,默认分隔符“-”。例如:2012-03-08 
  20.  * @param startDate  开始日期 
  21.  * @param endDate  结束日期 
  22.  * @returns {Number} 如果startDate小于endDate返回正数,如果startDate大于endDate返回负数,如果日期相等返回0 
  23.  */  
  24. function compareDate(startDate,endDate){  
  25.     if( checkDate(startDate) && checkDate(endDate) ){  
  26.         var sdate = new Date(startDate.replace(/\-/g, "\/"));  
  27.         var edate = new Date(endDate.replace(/\-/g, "\/"));  
  28.         return edate - sdate;  
  29.     }else{  
  30.         alert("给定的日期不合法!");  
  31.     }  
  32. }  
  33. /** 比较 **/  
  34.     function doCompare(){  
  35.         var startdate = document.getElementById("startdate").value;  
  36.         var enddate = document.getElementById("enddate").value;  
  37.         var result = compareDate(startdate,enddate);  
  38.         if ( result>0 ) {  
  39.             alert(startdate + " 小于 " + enddate);  
  40.         }else if( result<0 ){  
  41.             alert(startdate + " 大于 " + enddate);  
  42.         }else if ( result==0 ){  
  43.             alert(startdate + " 等于 " + enddate);  
  44.         }  
  45.     }  
  46. </script>  
  47. </head>  
  48. <body>  
  49. 开始时间:<input type="text" id="startdate" name="startDate"><br>  
  50. 结束时间:<input type="text" id="enddate" name="endDate"><br>  
  51.            <input type="button" name="compareBtn" value="比较" onclick="doCompare()"/>  
  52. </body>  
  53. </html>  
0 0