问题描述
我在 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>