【问题标题】:How to check the input timestamp is between the given array of objects如何检查输入时间戳是否在给定的对象数组之间
【发布时间】:2021-07-26 23:55:59
【问题描述】:
我在 react JS 工作。我需要查找输入时间戳(例如:09:10)是否在给定数组对象之间。下面显示了示例数组对象。如果输入时间为09:10,则需要循环遍历数组对象,检查输入时间是否在开始和结束之间。如果任何对象值满足条件,则返回true,否则返回false。我认为这个想法很明确。有人可以帮我找到解决方案吗?
let timeSlot=[{start:"08:35" end:"10:40"}, {start:"07:03" end:"08:24"},{start:"09:00" end:"09:15"]
【问题讨论】:
标签:
javascript
reactjs
time
momentjs
arrayobject
【解决方案1】:
如果你使用像momentjs这样的库,这会更容易
发帖前请务必检查您的数据格式
let timeSlot=[{start:"08:35",end:"10:40"}, {start:"07:03", end:"08:24"},{start:"09:00", end:"09:15"}]
let format = 'hh:mm'
function checkSlotIsBetween (slotToCheck) {
let isBetween = timeSlot.find(slot=>{
const beforeTime = moment(slot.start, format),
afterTime = moment(slot.end, format),
checkerTime = moment(slotToCheck ,format);
return checkerTime.isBetween(beforeTime, afterTime);
})
if(isBetween)return true
return false
}
console.log(checkSlotIsBetween('09:10')) // remember the format
console.log(checkSlotIsBetween('12:05')) // remember the format
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>