我有一个数组,其中包含一组开始/结束日期对象(包括时间)
即
results["records"] =
[0] -[startDate,endDate]
[1] -[startDate, endDate]
我还有另外两个日期对象作为JS变量本地存储。 如何检查这些变量(即startDateObj和&endDateObj OVERLAP)是否与数组中的ANY记录重叠,也就是说,我的意思是与任何开始日期或结束日期之间的任何时间进行交叉。
提前谢谢
下面的初始尝试
$(results['records']).each(function() {
console.log('end:' + this[1])
console.log('start:' + this[0])
if(startDateObj < this[1].end && endDateObj > this[0].start) {
alert('this overlaps')
}
});
编辑:下面添加了答案 祝你有美好的一天!
答案 0 :(得分:0)
我在“ dateArray”中采用此结构,因为要检查重叠部分,您需要定义日期和时间范围。
dateArray: [{start: Date, end: Date}];
dateArray.forEach(date => {
if(startDateObj < date.end && endDateObj > date.start) {
//this is an overlap
}
});
答案 1 :(得分:0)
答案是数组中的完整日期对象,该对象被视为字符串 以便进行转换和修复
function toDateString(date)
{
var formatedDate = new Date(date);
return formatedDate;
}
$(results['records']).each(function() {
if(startDateObj < toDateString(this[1]) && endDateObj > toDateString(this[0]))
{
//overlaps
}