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);