JS时间--时分冲突判断

这两天做一个课程表,涉及到用户选择课程时间,怎么样防止用户选择的课程时间冲突,参考了网上的一些方法,记录一下:

用户选择上课的时间是这样的一个形式 8:00~8:40 ,
用户后面的选择时间如果有8:30~9:10就是冲突了,解决的方法很简单,只要用户后面选择的起始时间都不在已经选择好了的时间范围就可以了。

思路:
1、声明一个空数组timeArr,用于存放用户选择的课程时间。
2、用户每次选择的时间 都先和数组timeArr里面的时间进行比较判断,不冲突就追加到数组里面。
首先我这里得到的用户选择的时间段是 8:00 、8:40这样的一个形式

//核心代码
var timeArr = [];
function compareTime(_time1,_time2){ //时间大小比较函数
	var date = new Date();
	var _t1 = _time1.split(":");
	var _t2 = _time2.split(":");
	return date.setHours(_t1[0], _t1[1]) > date.setHours(_t2[0], _t2[1]);
}
function judgeConfig( userStartTime,userEndTime ){ //时间大小比较函数
	if(timeArr.length==0){
		timeArr.push([userStartTime,userEndTime]);
	}
	for(var i = 0; i<timeArr.length; i++){
		var confi1 = compareTime(userStartTime,timeArr[i][0]);
		var confi2 = compareTime(userStartTime,timeArr[i][1]);
		var confi3 = compareTime(userEndTime ,timeArr[i][0]);
		var confi4 = compareTime(userEndTime ,timeArr[i][1]);
		if(confi1 && !confi2 || confi3 && !confi4){
			console.log("时间冲突了")
		}else{
			timeArr.push([userStartTime,userEndTime]);
		}
	}
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值