I'm trying to make a Livestream feature in my project, I have an array of programs (videos), every video has startDate and endDate. I should run every video when its time has come.
const programs = [
{ video: "URL", startDate: 1644405993, endDate: 1644406032 },
{ video: "URL", startDate: 1644405993, endDate: 1644406032 },
{ video: "URL", startDate: 1644405993, endDate: 1644406032 },
{ video: "URL", startDate: 1644405993, endDate: 1644406032 }
];
You can get a new date and compare it against your stored dates (though you appear to have not stored the dates as correct date-timestamps). The item you are after is the one with a startDate less than current and end endDate greater than current. This will also give an empty array if no matches found - so you will need to have a check against the returned matches length.
const programs = [
{ video: "URL1", startDate: 1644492517146, endDate: 1644492517446 },
{ video: "URL2", startDate: 1644492517726, endDate: 1644492517646 },
{ video: "URL3", startDate: 1644492507746, endDate: 1644492517546 },
{ video: "URL4", startDate: 1644492517746, endDate: 16474492519746 }
];
const now =new Date().getTime(); // gives similar to 1644492517146
const currentProgram = programs.filter(
p => new Date(p.startDate) < now && new Date(p.endDate) > now
);
console.log(currentProgram) // gives [{ video: "URL4", startDate: 1644492517746, endDate: 16474492519746 }]
try this
export const checkTime = (startDate, endDate) => {// startDate= 1644405993, endDate = 1644406032
const now = new Date()
const bookingStartDate = new Date(startDate) // use this step to convert your date if its stored in a different format
const bookingEndDate = new Date(endDate) // use this step to convert your date if its stored in a different format
return now.getTime() > bookingStartDate.getTime() && now.getTime() < bookingEndDate.getTime()
}
You can check by calling this function.
function compareDates(startDate,endDate){
let current=new Date();
return startDate>=current && endDate<=current;
}