SaM1001, Это не решение твоей задачи, но принцип, думаю, будет понятен.
var timestamps=[1494843562],i=0
for(i=0;i<9;i++)
timestamps.push(timestamps[timestamps.length-1]-(Math.floor(Math.random()*(60*60-5*60+1))+5*60));
timestamps=timestamps.sort();
var response={},
start=timestamps[0],
end=start+15*60,
point;
for(i=0;i<timestamps.length;i++){
point=timestamps[i];
if(point<start || point>end){
start=point;
end=start+15*60;
};
if(!response[start+'-'+end])
response[start+'-'+end]=[];
response[start+'-'+end].push(point);
}
console.log(response);