demo如下
/**
* @param {} endDate 当前时间
* @param {} splitTime 需要往前推算的整数时间戳 例如当前时间往前推算整5分钟 1000 * 60 * 5
* @param {} count 往前推的次数
*/
function getBeforeDateArray(endDate, splitTime, count) {
if (!endDate) {
endDate = new Date();
}
if (!splitTime) {
splitTime = 5 * 60 * 1000;
}
if (!count) {
count = 12;
}
var endTime = endDate.getTime();
var mod = endTime % splitTime; //所有的时间戳磨去5分钟的时间戳 就是多余的时间戳 所有的-多余的 = 当前整点的时间戳 例如当前时间戳是11分 % 5分 = 1 11-1 = 10 最近的整分钟
var d = new Date();
d.setTime(endTime - mod);
if (mod > 0) {
endTime -= mod;
}
var dateArray = [];
while (count-- > 0) {
let d = new Date();
d.setTime(endTime - count * splitTime); //在原有的基础上 * count次数 就是往前推 例如11分 % 5分 = 1 11-1 = 10 11 - 1 * 5 = 5 ···
dateArray.push(d);
}
return dateArray;
}