微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 luxon 在两个日期之间循环以创建时间间隔

如何解决使用 luxon 在两个日期之间循环以创建时间间隔

我将 UTC 日期存储在一个集合中,如下所示:

"orderBeforeStartTime" : ISODate("2021-03-20T14:00:00.000Z"),"orderBeforeEndTime" : ISODate("2021-03-20T16:00:00.000Z")

我想做一个orderBeforeStartTime 开始到 orderBeforeEndTime 结束的循环,以填充具有时间间隔的数组。

例如使用上面的数据,我应该得到一个数组:

['14:00','14:30','15:00','15:30','16:00'];

每个数字之间应该有 30 分钟的间隔,直到我到达 orderBeforeEndTime

我的代码

const { DateTime } = require("luxon");
let startDate;

const endDate = DateTime.fromHTTP(
    item.timeSegment.orderBeforeEndTime.toUTCString()
);

if (new Date() > item.timeSegment.orderBeforeStartTime) {
    startDate = DateTime.utc();
} else {
    startDate = DateTime.fromHTTP(
    item.timeSegment.orderBeforeStartTime.toUTCString()
    );
}

while (startDate <= endDate) {
    item.orderTimeSegments.push(
    startDate.toLocaleString(DateTime.TIME_24_SIMPLE)
    );
    startDate = startDate.plus({ minutes: 30 });
}

这是正确的做法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。