Home > Blockchain >  How to check if current date is between two dates in javascript
How to check if current date is between two dates in javascript

Time:02-11

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 }
];

CodePudding user response:

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 }]

CodePudding user response:

You can check by calling this function.

function compareDates(startDate,endDate){
  let current=new Date();
  return startDate>=current && endDate<=current;
}

CodePudding user response:

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

}

CodePudding user response:

You can try this

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 }
];
let currentTime = new Date().toLocaleTimeString("en-US");
for(let pg of programs){
        let startDate = new Date(pg.startDate).toLocaleTimeString("en-US");
    let endDate = new Date(pg.endDate).toLocaleTimeString("en-US");
    
    console.log({
        startDate:startDate,
      endDate:endDate,
      currentTime:currentTime
    })
    
    if (currentTime >= startDate && currentTime < endDate){
        console.log("Current time in between start and end time");
    }
}

  • Related