js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内

js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内

js判断时间区间是否在另外一个时间区间内,js时间格式化,js时间比较大小

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年3月8日

http://fanshuyao.iteye.com/

 

/**
 * 日期解析,字符串转日期
 * @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;
};

 

 

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年3月8日

http://fanshuyao.iteye.com/

猜你喜欢

转载自fanshuyao.iteye.com/blog/2360929