Search code examples
javascriptscriptingclient-sideprompt

Trigger client side javascript based on datetime


I have an event_start time and I want to run a script 10 seconds after that event start but can't figure out how to trigger the script.

const date = Date().toString();
const currentDateParse = Date.parse(date);
const trigger = Date.parse(startTime) + 1000 * 10

Then this is how I'm attempting to trigger the script but it's not working. How do I start my function when the currentDateParse is equal to trigger. Or, put more simply, 10 seconds after the event starts.

if (currentDateParse = trigger)
   <function code underneath works already>

Solution

  • Try this (explanations below):

    let startTime = "18:00";
    let currentTime = new Date();
    let target = new Date().parse(startTime);
    
    let timeout = target - currentTime + 1000 * 10; // how long should it wait till the functions is executed
    
    function runTenSecAfterEvent() {
      // do something here
    }
    
    setTimeout(runTenSecAfterEvent, timeout);
    

    Explanations

    After you calculated target (the start time) and currentTime, you need to know the time difference between them (timeout), so target minus currentTime. After that, you add the 10000ms.

    And then you define the function which will be executed 10 seconds after the event occurred (runTenSecAfterEvent()).

    Finally, you create a timeout.