JSFiddle - React, Tailwind, and code Playground

Comparing timeSlots with time of day.

by Nalin Sajwan

JavaScript

let slots = [
  {
    startTime: "06:00",
    endTime: "14:00",
  },
  {
    startTime: "16:00",
    endTime: "24:00",
  },
];

const isTimeInRange = (input, start, end) => {

  const splitted = {
    input: input.split(':'),
    start: start.split(':'),
    end: end.split(':'),
  }

  const dateValues = {
    input: new Date(Date.now()),
    start: new Date(Date.now()),
    end: new Date(Date.now()),
  }

  dateValues.input.setMinutes(splitted.input[0]);
  dateValues.input.setMinutes(splitted.input[1]);
  dateValues.start.setHours(splitted.start[0]);
  dateValues.start.setMinutes(splitted.start[1])
  dateValues.end.setHours(splitted.end[0])
  dateValues.end.setMinutes(splitted.end[1]);

  if (dateValues.input >= dateValues.start && dateValues.input <= dateValues.input) {
    return true;
  }

  else false;
};

const today = new Date(Date.now());

const validSlot = slots.find((slot) => {
  const hour = today.getHours();
  const minutes = today.getMinutes();
  if (isTimeInRange(`${hour}:${minutes}`, slot.startTime, slot.endTime)) {
    return true;
  }
});

console.log("validSlot ==> ", validSlot);