如何在设定的日期范围内以每小时的分钟数构建数组。
假设您有这些日期
COMPILE_DEFINTIIONS
如何将其转换为数组,如下所示:
const start = new Date('2019-04-04 12:14');
const end = new Date('2019-04-04 16:21');
答案 0 :(得分:1)
这是一个简单的函数,可以执行您想要的操作。它的工作方式是重复计算直到下一个小时(或者更接近end
的分钟,然后递增到下一个小时,直到到达end
时停止。
/**
* Gets the minutes in each sequential hour in a time range
* @param {Date} start
* @param {Date} end
* @return {{hour:number, minute_count:number}[]}
*/
function getMinutesPerHour(start, end) {
const outp = [];
let current = start;
while (current < end) {
const minutesToNextHour = 60 - current.getMinutes();
const nextHour = new Date(+current + minutesToNextHour * 60 * 1000);
const minutes = nextHour > end
? end.getMinutes() - current.getMinutes()
: minutesToNextHour;
outp.push({ hour: current.getHours(), minutes: minutes, });
current = nextHour;
}
return outp;
}
console.log(getMinutesPerHour(new Date('2019-04-04 12:14'), new Date('2019-04-04 16:21')));