javascript - 比较日期数组以在 java-script 中以简单的方式检查日期重叠
问题描述
我想检查我的日期数组中发生的任何日期冲突。我有一个这样的数组。
[['2020-07-03T18:30:00.125000Z','2020-07-04T01:30:00Z'],['2020-07-03T18:30:00.125000Z','2020-07-04T00:30:00Z'],['2020-07-03T18:30:00.125000Z','2020-07-04T00:30:00Z']]
单个数组中的第一个日期分别是开始日期和结束日期。我想在这里检查的是,第一个数组日期与数组中的以下日期冲突。这样我就可以根据日期分配一个人。一个人可以分配一个日期时间。那么有人知道解决这个问题的完美 ES6 方法吗?
解决方案
我创建了一个函数来解决这个问题。dateTimes 是包含日期的数组。
checkDateTimeOverlap = (dateTimes)=>{
let isOverlap = false;
dateTimes.forEach((time,i) => {
let st1 = time[0];
let et1 = time[1];
dateTimes.forEach((time2,j) => {
if(i != j){
let st2 = time2[0];
let et2 = time2[1];
if (st1 >= st2 && st1 <= et2 || et1 >= st2 && et1 <= et2 || st2 >= st1 && st2 <= et1 || et2 >= st1 && et2 <= et1) {
isOverlap = true;
}else{
isOverlap = false;
}
}
})
});
return isOverlap;
}
推荐阅读
- go - 使用 io.ReadFull 从 TCP 连接连续读取数据
- javascript - 相对 URL 不适用于 express-http-proxy
- vba - 在 Windows 10 上访问 2007 Word 自动化
- python - np.sum() 执行了多少次加法运算?
- java - 将数据对象从 xml 发送到 viewmodel
- c++ - 您可以在具有自定义类型的向量上应用 binary_search 吗?
- python - Requests.get() 在第一次运行时返回正确的数据,然后返回 html 代码
- mediawiki - Mediawiki:在服务器上打开本地文件的链接不起作用
- javascript - 如何根据值在谷歌柱形图中分配自定义颜色(Django)
- arrays - 无法展平 NumPy ndarray/如何更智能地读取二进制文件