请按照以下示例将unixtime传递为数组。
var subevent = [
{
start: Mon Jun 26 2017 10:15:00 GMT+0530 (India Standard Time),
startunix: 1498452300000,
end: Mon Jun 26 2017 11:15:00 GMT+0530 (India Standard Time),
endunix: 1498455900000
},
{
start: Mon Jun 26 2017 11:15:00 GMT+0530 (India Standard Time),
startunix: 1498455900000,
end: Mon Jun 26 2017 12:15:00 GMT+0530 (India Standard Time),
endunix: 1498459500000
}
]
然后按时间升序排序数组
var sortedArray = subevent.sort(function(a,b){
return a.startunix - b.startunix;
});
在for循环中使用已排序的数组,并将结束时间存储在一个变量lastEndTime
中,然后像下面的代码一样检查当前迭代的开始时间与lastEndTime
变量是否相同。
var errorFlag = 0;
var lastEndTime;
for(var i=0; i<sortedArray.length; i++) {
var currentStartTime;
if( sortedArray[i].endunix <= sortedArray[i].startunix ){
alert('time slot conflict')
errorFlag = 1;
break;
}
if( !lastEndTime ) {
lastEndTime = sortedArray[i].endunix;
} else {
currentStartTime = sortedArray[i].startunix;
if ( currentStartTime < lastEndTime ) {
alert('time overlapping')
errorFlag = 1;
break;
}
lastEndTime = sortedArray[i].endunix;
}
}
console.log(errorFlag);
还有显示警告或错误标志,如果警告显示或错误标志为1,则表示出现了问题,否则一切正常。