我有一个繁忙时间的清单。使用下面的代码,我设法找到了繁忙时间可用的空闲时间段。但是我想根据给定的持续时间找到空闲时间段。下面的代码生成我可用的间隙,但我想根据持续时间生成它们。例如,如果持续时间是 30 分钟,它应该生成可以是 30 分钟的可用时间。
var free_slots = [];
var start_time = '08:00:00';
var end_time = '17:00:00';
busy_slots.sort(function(a, b){
return new Date(a.Time_Start) > new Date(b.Time_Start)? 1: -1;
});
for(var i=0, l=busy_slots.length; i<l; i++){
if(prettyDate2(new Date(busy_slots[i].Time_Start)) < start_time){
busy_slots.splice(i, 1);
break;
}
}
for(var i=0, l=busy_slots.length; i<l; i++){
end_time = busy_slots[i].Time_Start;
if(i)
start_time = busy_slots[i-1].Time_End;
if((end_time && !i) || (end_time && i && busy_slots[i-1].Time_End < busy_slots[i].Time_Start) )
free_slots.push({date: getDate(busy_slots[i].Time_End) ,start_time: start_time, end_time: end_time});
if(i+1 === l){
start_time = busy_slots[i].Time_End;
if(start_time)
free_slots.push({ date: getDate(busy_slots[i].Time_End), start_time: start_time, end_time: '17:00:00'});
}
}
return free_slots;