在jquery中添加超过4个文本框的时间选择器范围验证

Time picker range validation for appending more than 4 text boxes in jquery

本文关键字:时间 选择器 验证 范围 文本 4个 jquery 添加      更新时间:2023-09-26

我有一个文本框询问每天有多少匹配的时间表可用。在此基础上,我需要得到整个行程的开始时间和结束时间。

如果用户可以输入3个时间表,那么我需要得到3个开始时间和结束时间。这工作得很好,但问题是我需要避免冲突的时间。

例如

  1. 调度时间:开始时间为9:00,结束时间为8:30(时间冲突)

  2. 时间段1为9:30 ~ 12:30,时间段2为10:30 ~ 13:30(时间段冲突)

这些是我需要避免的冲突,谁来帮帮我吧。

我尝试在这个示例中单击按钮,它显示:

http://jsbin.com/lixig/8/edit

您可以使用下面的函数来确定两个数字范围是否重叠。它接受两个形式为[start, end]的数组。

function rangesOverlap(range1, range2) {
  return range1[1] > range2[0] && range2[1] > range1[0];
}

假设你有一个范围数组,要确定没有重叠:

function noneOverlap(ranges) {
  var untestedRanges = ranges.slice();
  return ranges.every(function(range1) {
    untestedRanges.shift();
    return untestedRanges.every(function(range2) {
      return ! rangesOverlap(range1, range2);
    });
  });
}
例如:

noneOverlap([[0,1],[0,2]]) // => false
noneOverlap([[0,1],[2,3]]) // => true