zoukankan      html  css  js  c++  java
  • 检测日期字符串是否为合法(js版)

      1 /**
      2 *     checkDate
      3 */
      4 function DTO_checkDate(dateStr,format){
      5     if(dateStr == null || dateStr == "" ) return true;
      6     if(dateStr.length != format.length){
      7       
      8       return false;
      9     }  
     10        var year,month,day,hour,minute,second;
     11        switch (format) {
     12              case "YYYY" :
     13                   year = dateStr;
     14                    break;
     15              case "YYYYMM" :
     16                 year = dateStr.substring(0,4);
     17                 month = dateStr.substring(4,6);
     18                 break;
     19              case "YYYYMMDD" :
     20                 year = dateStr.substring(0,4);
     21                 month = dateStr.substring(4,6);
     22                 day = dateStr.substring(6,8);
     23                 break;
     24                
     25              case "YYYYMMDD HH:MI" :
     26                 year = dateStr.substring(0,4);
     27                 month = dateStr.substring(4,6);
     28                 day = dateStr.substring(6,8);
     29                 hour = dateStr.substring(9,11);
     30                 minute = dateStr.substring(12,14);
     31                 break;  
     32              case "YYYYMMDD HH:MI:SS" :
     33                 year = dateStr.substring(0,4);
     34                 month = dateStr.substring(4,6);
     35                 day = dateStr.substring(6,8);
     36                 hour = dateStr.substring(9,11);
     37                 minute = dateStr.substring(12,14);
     38                 second = dateStr.substring(15,17);
     39                 break;        
     40                
     41              case "YYYY-MM" :
     42                 if(!_checkSpecial(dateStr,4,"-" )) return false;
     43                 year = dateStr.substring(0,4);
     44                 month = dateStr.substring(5,7);
     45                 break;
     46              case "YYYY-MM-DD" :
     47                 if(!_checkSpecial(dateStr,4,"-" )) return false;
     48                 if(!_checkSpecial(dateStr,7,"-" )) return false;
     49                 year = dateStr.substring(0,4);
     50                 month = dateStr.substring(5,7);
     51                 day = dateStr.substring(8,10);           
     52                 break;
     53              case "YYYY-MM-DD HH:MI:SS" :
     54                 if(!_checkSpecial(dateStr,4,"-" )) return false;
     55                 if(!_checkSpecial(dateStr,7,"-" )) return false;
     56                 year = dateStr.substring(0,4);
     57                 month = dateStr.substring(5,7);
     58                 day = dateStr.substring(8,10);
     59                 hour = dateStr.substring(11,13);
     60                 minute = dateStr.substring(14,16);
     61                 second = dateStr.substring(17,19);
     62                 break;
     63              case "YYYYMMDDHHMISS" :
     64                 year = dateStr.substring(0,4);
     65                 month = dateStr.substring(4,6);
     66                 day = dateStr.substring(6,8);
     67                 hour = dateStr.substring(8,10);
     68                 minute = dateStr.substring(10,12);
     69                 second = dateStr.substring(12,14);
     70                 break;
     71                
     72              default:
     73                 
     74                 return false ;          
     75       }
     76        //check year
     77        if(year != null){
     78             year = parseInt(year,10);           
     79           if(isNaN(year)){    
     80             
     81                    return false ;
     82           }       
     83         if(year<1900 || year>2200){
     84                
     85                 return false ;
     86         }
     87          
     88       }
     89        //check month
     90        if(month != null){
     91             month = parseInt(month,10);
     92           if(isNaN(month)){   
     93            
     94                    return false ;
     95             }     
     96         if(month<1 || month >12){
     97                 
     98                 return false ;
     99         }      
    100       }
    101        //check day
    102        if(day != null){
    103             day = parseInt(day,10);
    104           if(isNaN(day)){     
    105             
    106                    return false ;
    107             }     
    108         if((day==0)||(day>31)){
    109                 
    110                 return false ;
    111          }
    112          else if (day>28 && day<31){
    113                 if(month==2){
    114                                 if(day!=29){
    115                                         
    116                                         return false ;
    117                                 }
    118                                 else {
    119                                         if((year%4)!=0){
    120                                                 
    121                                                 return false ;
    122                                          }
    123                                          else {
    124                                                 if((year%100==0)&&(year%400!=0)){
    125                                                       
    126                                                        return false ;
    127                                                 }
    128                                          }
    129                                 }
    130                         }
    131                 }
    132 
    133                 else if (day==31){
    134                         if((month==2)||(month==4)||(month==6)||(month==9)||(month==11)){
    135                                
    136                                 return false ;
    137                         }
    138                 } 
    139       }
    140        //check hour
    141        if(hour != null){
    142             hour = parseInt(hour,10);
    143           if(isNaN(hour)){
    144             
    145                    return false ;
    146             }           
    147         if(hour<0 || hour >23){
    148                
    149                 return false ;
    150         }      
    151       }
    152        //check minute
    153        if(minute != null){
    154             minute = parseInt(minute,10);
    155           if(isNaN(minute)){
    156             
    157                    return false ;
    158             }           
    159         if(minute<0 || minute >59){
    160                
    161                 return false ;
    162         }     
    163       }
    164        //check second
    165        if(second != null){
    166             second = parseInt(second,10);
    167           if(isNaN(second)){    
    168             
    169                    return false ;
    170             }     
    171         if(second<0 || second >59){
    172                
    173                 return false ;
    174         }      
    175       }     
    176        return true ;      
    177 }
    178 function _checkSpecial(str,pos,identifier){
    179        if(str.substring(pos,pos+1) == identifier) return true;
    180       pos++;
    181        
    182        return false ;
    183 }
  • 相关阅读:
    解析xml
    序列化为xml
    aspose.cells excel表格导入导出
    文件下载
    jquery拼接和拆分字符串,并加入特殊符号
    VC Windows系统服务创建代码
    Lua 基础知识-面向对象
    iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)
    iOS 网络与多线程--7.Performselector消息处理方法
    iOS 网络与多线程--6.下载并保存网络图片
  • 原文地址:https://www.cnblogs.com/live365wang/p/2939999.html
Copyright © 2011-2022 走看看