我有一个介于两个epoch时间之间的时间跨度(以秒为单位(。我想要一个函数,返回该时间跨度内所有午夜的历元时间(以秒为单位(。
在伪代码中,我想要这样的东西:
const epoch_start = 1600000;
const epoch_end = 16040000;
function getMidnights(start, end){
// do your magic
}
console.log(getMidnights(epoch_start, epoch_end));
我希望该函数的返回如下:[16000201600400](这些只是示例值(。
最有效的方法是什么?
我的想法是:获取范围内唯一的天数列表,并返回它们的午夜。
您可以逐日取整:
const epoch_start = 1600000000;
const epoch_end = 1600400000;
const day = 86400;
function getMidnights(start, end){
midnites = [];
while (start < end) {
midnites.push((start/day + .5|0)*day);
start += day;
}
return midnites;
}
console.log(getMidnights(epoch_start, epoch_end))
console.log('* check it *')
console.log(getMidnights(epoch_start, epoch_end).map(t => new Date(t*1e3)));