时间段区间区间获取【分钟】
var times = [{
b: "21:00:00",
e: "01:00:00",
bd: "0",
ed: "0"
}, {
b: "09:00:00",
e: "10:15:00",
bd: "0",
ed: "0"
}, {
b: "10:30:00",
e: "11:30:00",
bd: "0",
ed: "0"
}, {
b: "13:30:00",
e: "15:00:00",
bd: "0",
ed: "0"
}];
function getTicks(times) {
var ticks = [];
times.forEach(x => {
ticks = ticks.concat(timeToTicks(x.b, x.e));
});
return ticks;
}
function timeToTicks(start, end) {
var ed = time2int(end);
var i = time2int(start);
var minute = 0,
hour = 0;
var ticks = [int2time(i)];
while (i != ed) {
i++;
hour = Math.floor(i / 100);
minute = i % 100;
if (minute >= 60) {
hour += 1;
minute -= 60;
}
if (hour >= 24) {
hour = 0;
}
i = hour * 100 + minute;
ticks.push(int2time(i));
}
return ticks;
}
function time2int(t) {
return parseInt(t.replace(/:/g, '')) / 100
}
function int2time(i) {
var st = padZero(i, 4);
return st.substring(0, 2) + ':' + st.substring(2);
}
function padZero(number, fill) {
var new_number = number * (number > 0 ? 1 : -1),
len = ('' + new_number).length;
return Array(fill > len ? fill - len + 1 || 0 : 0).join(0) + new_number;
}