jquery判断多个时间段是否有重复情况
今天在工作中遇到一个需求,页面上可以填写多个开始,结束时间段,但提交时不能有重复交叉的情况,一开始网上搜了一下,也没找到方便的方法,就自己想了想写了个,代码如下:
<script> function compareDate(){var begin = ['2015-01-02 10:01:38','2015-01-04 09:28:12','2015-01-11 01:37:13']; var over = ['2015-01-04 10:27:21','2015-01-09 21:28:13','2015-01-16 10:22:23']; begin = begin.sort(); over = over.sort(); for(i=1;i<begin.length;i++){ if (begin[i] <= over[i-1]){ alert("时间有重复!"); returnfalse; } } alert("时间没有重复!"); returntrue; } </script>
基本的思路,日期也可以当成字符串进行比较,把开始日期,结束日期分别存进两个数组,并用sort排序,循环遍历数组,从开始时间的第二个元素去比较结束时间的第一个元素,如果小于,就代表时间段有交叉,直接跳出,不然就继续遍历,遍历结束,说明时间没有重复,可以提交。
内容出自:https://blog.csdn.net/feijiyan1985/article/details/43772647
今天在工作中遇到一个需求,页面上可以填写多个开始,结束时间段,但提交时不能有重复交叉的情况,一开始网上搜了一下,也没找到方便的方法,就自己想了想写了个,代码如下:
<script>
function compareDate(){
var begin = ['2015-01-02 10:01:38','2015-01-04 09:28:12','2015-01-11 01:37:13'];
var over = ['2015-01-04 10:27:21','2015-01-09 21:28:13','2015-01-16 10:22:23'];
begin = begin.sort();
over = over.sort();
for(i=1;i<begin.length;i++){
if (begin[i] <= over[i-1]){
alert("时间有重复!");
return false;
}
}
alert("时间没有重复!");
return true;
}
</script>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
基本的思路,日期也可以当成字符串进行比较,把开始日期,结束日期分别存进两个数组,并用sort排序,循环遍历数组,从开始时间的第二个元素去比较结束时间的第一个元素,如果小于,就代表时间段有交叉,直接跳出,不然就继续遍历,遍历结束,说明时间没有重复,可以提交。

浙公网安备 33010602011771号