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排序,循环遍历数组,从开始时间的第二个元素去比较结束时间的第一个元素,如果小于,就代表时间段有交叉,直接跳出,不然就继续遍历,遍历结束,说明时间没有重复,可以提交。

posted @ 2018-07-21 15:03  西湖看雪  阅读(655)  评论(0)    收藏  举报