如何检查输入时间戳是否在给定的对象数组之间

问题描述

我在 React JS 工作。我需要找到给定数组对象之间的输入时间戳(例如:09:10)。下面显示了示例数组对象。如果输入时间是 09:10,则需要循环遍历数组对象,检查输入时间是否在 start 和 end 之间。如果任何对象值满足条件,则返回 true 否则返回 false。我认为这个想法很清楚。有人可以帮我找到解决方案吗?

let timeSlot=[{start:"08:35" end:"10:40"},{start:"07:03" end:"08:24"},{start:"09:00" end:"09:15"]

解决方法

如果您使用诸如 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,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>