现有一组四个select,起始1组,动态添加,最多10组,
要对00:00至23:59的时间段进行切割,且不能有重复交叉的区域,
应该如何进行计算监听呢?完全没有思路...
想跟大家讨论讨论...
html结构如图
对其中开始时间小时的监听 其他类似
现有一组四个select,起始1组,动态添加,最多10组,
要对00:00至23:59的时间段进行切割,且不能有重复交叉的区域,
应该如何进行计算监听呢?完全没有思路...
想跟大家讨论讨论...
html结构如图
对其中开始时间小时的监听 其他类似
利用好Date对象的getTimed\转换为数字判断间隔
var formatTime = function(str){
var times = new Date();
return [times.getFullYear(),times.getMonth()+1,times.getDate()].join('-')
}
var time2num = function(str){return new Date(formatTime()+' ' +x).getTime()}
那么 11:00到12:00就是
[time2num('11:00'),time2num('12:00')]
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
将0:00-23:59抽象为一个一维坐标轴。
每个时间段都可以看作该轴上的一段长度。
方法一:
将所有时间段左边界和右边界的坐标存入数组并排序,然后依次遍历,确保第2n个和第2n+1个坐标是同一时间段的两段坐标,否则即表示有重叠。
方法二:
保存时间段中点坐标和“半径”,根据中点坐标排序,判断任意两个时间段是否重叠可以检测两个中点的距离是否大于双方半径之和,不大于即表示有重叠。