【问题标题】: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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 2018-07-26
      相关资源
      最近更新 更多