/** * 日期解析,字符串转日期 * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 * @returns {Date} 返回对应的日期对象 */ function dateParse(dateString){ var SEPARATOR_BAR = "-"; var SEPARATOR_SLASH = "/"; var SEPARATOR_DOT = "."; var dateArray; if(dateString.indexOf(SEPARATOR_BAR) > -1){ dateArray = dateString.split(SEPARATOR_BAR); }else if(dateString.indexOf(SEPARATOR_SLASH) > -1){ dateArray = dateString.split(SEPARATOR_SLASH); }else{ dateArray = dateString.split(SEPARATOR_DOT); } return new Date(dateArray[0], dateArray[1]-1, dateArray[2]); }; /** * 日期比较大小 * compareDateString大于dateString,返回1; * 等于返回0; * compareDateString小于dateString,返回-1 * @param dateString 日期 * @param compareDateString 比较的日期 */ function dateCompare(dateString, compareDateString){ if(isEmpty(dateString)){ alert("dateString不能为空"); return; } if(isEmpty(compareDateString)){ alert("compareDateString不能为空"); return; } var dateTime = dateParse(dateString).getTime(); var compareDateTime = dateParse(compareDateString).getTime(); if(compareDateTime > dateTime){ return 1; }else if(compareDateTime == dateTime){ return 0; }else{ return -1; } }; /** * 判断日期是否在区间内,在区间内返回true,否返回false * @param dateString 日期字符串 * @param startDateString 区间开始日期字符串 * @param endDateString 区间结束日期字符串 * @returns {Number} */ function isDateBetween(dateString, startDateString, endDateString){ if(isEmpty(dateString)){ alert("dateString不能为空"); return; } if(isEmpty(startDateString)){ alert("startDateString不能为空"); return; } if(isEmpty(endDateString)){ alert("endDateString不能为空"); return; } var flag = false; var startFlag = (dateCompare(dateString, startDateString) < 1); var endFlag = (dateCompare(dateString, endDateString) > -1); if(startFlag && endFlag){ flag = true; } return flag; }; /** * 判断日期区间[startDateCompareString,endDateCompareString]是否完全在别的日期区间内[startDateString,endDateString] * 即[startDateString,endDateString]区间是否完全包含了[startDateCompareString,endDateCompareString]区间 * 在区间内返回true,否返回false * @param startDateString 新选择的开始日期,如输入框的开始日期 * @param endDateString 新选择的结束日期,如输入框的结束日期 * @param startDateCompareString 比较的开始日期 * @param endDateCompareString 比较的结束日期 * @returns {Boolean} */ function isDatesBetween(startDateString, endDateString, startDateCompareString, endDateCompareString){ if(isEmpty(startDateString)){ alert("startDateString不能为空"); return; } if(isEmpty(endDateString)){ alert("endDateString不能为空"); return; } if(isEmpty(startDateCompareString)){ alert("startDateCompareString不能为空"); return; } if(isEmpty(endDateCompareString)){ alert("endDateCompareString不能为空"); return; } var flag = false; var startFlag = (dateCompare(startDateCompareString, startDateString) < 1); var endFlag = (dateCompare(endDateCompareString, endDateString) > -1); if(startFlag && endFlag){ flag = true; } return flag; };</span>
js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内
js判断时间区间是否在另外一个时间区间内,js时间格式化,js时间比较大小