1 <span style="line-height: 25.2px;">/** 
  2  * 日期解析,字符串转日期 
  3  * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 
  4  * @returns {Date} 返回对应的日期对象 
  5  */  
  6 function dateParse(dateString){  
  7     var SEPARATOR_BAR = "-";  
  8     var SEPARATOR_SLASH = "/";  
  9     var SEPARATOR_DOT = ".";  
 10     var dateArray;  
 11     if(dateString.indexOf(SEPARATOR_BAR) > -1){  
 12         dateArray = dateString.split(SEPARATOR_BAR);    
 13     }else if(dateString.indexOf(SEPARATOR_SLASH) > -1){  
 14         dateArray = dateString.split(SEPARATOR_SLASH);  
 15     }else{  
 16         dateArray = dateString.split(SEPARATOR_DOT);  
 17     }  
 18     return new Date(dateArray[0], dateArray[1]-1, dateArray[2]);   
 19 };  
 20   
 21 /** 
 22  * 日期比较大小 
 23  * compareDateString大于dateString,返回1; 
 24  * 等于返回0; 
 25  * compareDateString小于dateString,返回-1 
 26  * @param dateString 日期 
 27  * @param compareDateString 比较的日期 
 28  */  
 29 function dateCompare(dateString, compareDateString){  
 30     if(isEmpty(dateString)){  
 31         alert("dateString不能为空");  
 32         return;  
 33     }  
 34     if(isEmpty(compareDateString)){  
 35         alert("compareDateString不能为空");  
 36         return;  
 37     }  
 38     var dateTime = dateParse(dateString).getTime();  
 39     var compareDateTime = dateParse(compareDateString).getTime();  
 40     if(compareDateTime > dateTime){  
 41         return 1;  
 42     }else if(compareDateTime == dateTime){  
 43         return 0;  
 44     }else{  
 45         return -1;  
 46     }  
 47 };  
 48   
 49 /** 
 50  * 判断日期是否在区间内,在区间内返回true,否返回false 
 51  * @param dateString 日期字符串 
 52  * @param startDateString 区间开始日期字符串 
 53  * @param endDateString 区间结束日期字符串 
 54  * @returns {Number} 
 55  */  
 56 function isDateBetween(dateString, startDateString, endDateString){  
 57     if(isEmpty(dateString)){  
 58         alert("dateString不能为空");  
 59         return;  
 60     }  
 61     if(isEmpty(startDateString)){  
 62         alert("startDateString不能为空");  
 63         return;  
 64     }  
 65     if(isEmpty(endDateString)){  
 66         alert("endDateString不能为空");  
 67         return;  
 68     }  
 69     var flag = false;  
 70     var startFlag = (dateCompare(dateString, startDateString) < 1);  
 71     var endFlag = (dateCompare(dateString, endDateString) > -1);  
 72     if(startFlag && endFlag){  
 73         flag = true;  
 74     }  
 75     return flag;  
 76 };  
 77   
 78 /** 
 79  * 判断日期区间[startDateCompareString,endDateCompareString]是否完全在别的日期区间内[startDateString,endDateString] 
 80  * 即[startDateString,endDateString]区间是否完全包含了[startDateCompareString,endDateCompareString]区间 
 81  * 在区间内返回true,否返回false 
 82  * @param startDateString 新选择的开始日期,如输入框的开始日期 
 83  * @param endDateString 新选择的结束日期,如输入框的结束日期 
 84  * @param startDateCompareString 比较的开始日期 
 85  * @param endDateCompareString 比较的结束日期 
 86  * @returns {Boolean} 
 87  */  
 88 function isDatesBetween(startDateString, endDateString,  
 89         startDateCompareString, endDateCompareString){  
 90     if(isEmpty(startDateString)){  
 91         alert("startDateString不能为空");  
 92         return;  
 93     }  
 94     if(isEmpty(endDateString)){  
 95         alert("endDateString不能为空");  
 96         return;  
 97     }  
 98     if(isEmpty(startDateCompareString)){  
 99         alert("startDateCompareString不能为空");  
100         return;  
101     }  
102     if(isEmpty(endDateCompareString)){  
103         alert("endDateCompareString不能为空");  
104         return;  
105     }  
106     var flag = false;  
107     var startFlag = (dateCompare(startDateCompareString, startDateString) < 1);  
108     var endFlag = (dateCompare(endDateCompareString, endDateString) > -1);  
109     if(startFlag && endFlag){  
110         flag = true;  
111     }  
112     return flag;  
113     
114 }
115 
116 checkTime = function() {   
117     var startTime = document.getElementById("startTime").value;   
118     var endTime = document.getElementById("endTime").value;   
119     compareCalendar(startTime, endTime);         
120 }   
121 //比较日前大小  
122 function compareDate(checkStartDate, checkEndDate) {      
123     var arys1= new Array();      
124     var arys2= new Array();      
125 if(checkStartDate != null && checkEndDate != null) {      
126     arys1=checkStartDate.split('-');      
127       var sdate=new Date(arys1[0],parseInt(arys1[1]-1),arys1[2]);      
128     arys2=checkEndDate.split('-');      
129     var edate=new Date(arys2[0],parseInt(arys2[1]-1),arys2[2]);      
130 if(sdate > edate) {      
131     alert("日期开始时间大于结束时间");         
132     return false;         
133 }  else {   
134     alert("通过");   
135     return true;      
136     }   
137     }      
138 }     
139 
140 //判断日期,时间大小  
141 function compareTime(startDate, endDate) {   
142  if (startDate.length > 0 && endDate.length > 0) {   
143     var startDateTemp = startDate.split(" ");   
144     var endDateTemp = endDate.split(" ");   
145 
146     var arrStartDate = startDateTemp[0].split("-");   
147     var arrEndDate = endDateTemp[0].split("-");   
148 
149     var arrStartTime = startDateTemp[1].split(":");   
150     var arrEndTime = endDateTemp[1].split(":");   
151 
152 var allStartDate = new Date(arrStartDate[0], arrStartDate[1], arrStartDate[2], arrStartTime[0], arrStartTime[1], arrStartTime[2]);   
153 var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2], arrEndTime[0], arrEndTime[1], arrEndTime[2]);   
154 
155 if (allStartDate.getTime() >= allEndDate.getTime()) {   
156         alert("startTime不能大于endTime,不能通过");   
157         return false;   
158 } else {   
159     alert("startTime小于endTime,所以通过了");   
160     return true;   
161        }   
162 } else {   
163     alert("时间不能为空");   
164     return false;   
165       }   
166 }   
167 //比较日期,时间大小  
168 function compareCalendar(startDate, endDate) {   
169 if (startDate.indexOf(" ") != -1 && endDate.indexOf(" ") != -1 ) {   
170     //包含时间,日期  
171         compareTime(startDate, endDate);               
172 } else {   
173     //不包含时间,只包含日期  
174     compareDate(startDate, endDate);   
175       }   
176 };
177 </span>