【问题标题】:Time Range with an hour difference时差一小时的时间范围
【发布时间】:2021-07-29 12:31:41
【问题描述】:

   
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) 这样循环日期列表并使用像 (range) 这样的 moment.js 获取从午夜开始的所有时间范围 ??????任何提示

【问题讨论】:

    标签: javascript date time momentjs


    【解决方案1】:

    以下是实现此目的的示例。它只是循环,直到找到匹配的结束时间戳,并不断将 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>

    【讨论】:

    • 是的,但它在当天的两个时间都停止 ['2021-04-26T08:00:00Z', '2021-04-27T10:00:00Z']
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多