gpt4 book ai didi

javascript - 我可以查看时间范围内的空闲时间吗

转载 作者:行者123 更新时间:2023-12-02 21:49:25 26 4
gpt4 key购买 nike

我有一个注册了不同时间的数组

const existing = [
{
start: "2020-02-05T09:00:00Z",
end: "2020-02-05T10:15:00Z"
},
{
start: "2020-02-05T10:30:00Z",
end: "2020-02-05T11:00:00Z"
},
{
start: "2020-02-05T11:00:00Z",
end: "2020-02-05T12:15:00Z"
}
]

如果可以添加另一个时间,我想要一个返回 true 或 false 的函数。

如果注册了 10:00 - 11:00,还应该可以添加 09:00-10:00。这意味着开始时间和结束时间可以重叠。

用户可能会尝试添加这些时间。但他们当然可以选择许多其他时间

例如newStart 09:59 - newEnd 10:20

例如newStart 10:16 - newEnd 10:29

问题是比较不同的对象以及不同对象之间的时间。有什么想法

最佳答案

看起来像Array.prototype.every()可能有助于遍历保留时隙数组以查明这些时隙是否不与请求重叠:

const reserved = [{start:"2020-02-05T09:00:00Z",end:"2020-02-05T10:15:00Z"},{start:"2020-02-05T10:30:00Z",end:"2020-02-05T11:00:00Z"},{start:"2020-02-05T11:00:00Z",end:"2020-02-05T12:15:00Z"}],
bookingTimeInvalid = {start: '2020-02-05T09:59:00Z', end: '2020-02-05T10:20:00Z' },
bookingTimeValid = {start: '2020-02-05T10:16:00Z', end: '2020-02-05T10:29:00Z' },

validateBookingTime = ({start,end}, reserve) =>
reserve.every(reserve =>
new Date(reserve.start) >= new Date(end) ||
new Date(reserve.end) <= new Date(start)
)

console.log(`is 09:59-10:20 available? : `,validateBookingTime(bookingTimeInvalid, reserved))
console.log(`is 10:16-10:29 available? : `,validateBookingTime(bookingTimeValid, reserved))
.as-console-wrapper {min-height:100%}

关于javascript - 我可以查看时间范围内的空闲时间吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60166299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com