具有小时差的时间范围

Time Range with an hour difference

   
const all = ['2021-04-26T08:00:00', '2021-04-27T10:00:00',]
const range = ["2021-04-26T00:00:00.000Z",
"2021-04-26T01:00:00.000Z",
"2021-04-26T02:00:00.000Z",
"2021-04-26T03:00:00.000Z",
"2021-04-26T04:00:00.000Z",
"2021-04-26T05:00:00.000Z",
"2021-04-26T06:00:00.000Z",
"2021-04-26T07:00:00.000Z",
"2021-04-26T08:00:00.000Z",
"2021-04-27T00:00:00.000Z",
"2021-04-27T01:00:00.000Z",
"2021-04-27T02:00:00.000Z",
"2021-04-27T03:00:00.000Z",
"2021-04-27T04:00:00.000Z",
"2021-04-27T05:00:00.000Z",
"2021-04-27T06:00:00.000Z",
"2021-04-27T07:00:00.000Z",
"2021-04-27T08:00:00.000Z",
"2021-04-27T09:00:00.000Z",
"2021-04-27T10:00:00.000Z"
]
 
console.log(all, range)

是否可以像 (all) 这样循环遍历日期列表,并使用 moment.js like (range) 获取从午夜开始的所有时间范围 任何提示

下面是一个实现这个的例子。它简单地循环直到找到匹配的结束时间戳并不断将 ISO 字符串推送到 ranges 数组。

const all = ['2021-04-26T08:00:00Z', '2021-04-27T10:00:00Z'];
const end = moment(all[1]);

let current = moment(all[0]).startOf('day');
const ranges = [];

while (!current.isSame(end)) {
  ranges.push(current.toISOString());
  current = current.add(1, 'hour');
}

console.log(ranges);
<script src="https://cdn.jsdelivr.net/npm/moment@2.29.1/moment.js"></script>