Search code examples
javascriptphptimeradmincountdown

Countdown timer to a date set from admin panel


I am trying to make a countdown timer that will countdown to a certain date and time. I would like to be able to set the date and time from a 'admin panel' by typing in the date and time(ex 2014-01-25, 15:00) in a textbox or something similar.

As you might've figured, I'm not the best at PHP or JavaScript and I'm in need of directions as of how I would do this.

Any help is appreciated as I haven't made any progress in the last 2 hours I've tried doing this.


Solution

  • To do this with no frameworks like JQuery, you can do the following:

    var MINUTE_IN_MILLISECONDS = 60 * 1000;
    var HOUR_IN_MILLISECONDS = 60 * MINUTE_IN_MILLISECONDS;
    var YEAR_IN_MILLISECONDS = 24 * HOUR_IN_MILLISECONDS;
    
    var targetDate = new Date('2014-01-25 15:00');
    var countdownInterval;
    
    function countdown(){
        var currentDate = new Date();
    
        var difference = targetDate.getTime() - currentDate.getTime();
    
        //Countdown has expired, cancel interval and do other tasks here
        if(difference <= 0)
        {
            difference = 0;
            clearInterval(countdownInterval);
    
            //Update button here
        }
    
    
        var days = Math.floor(difference / YEAR_IN_MILLISECONDS);
        difference -= days * YEAR_IN_MILLISECONDS;
    
        var hours = Math.floor(difference / HOUR_IN_MILLISECONDS);
        difference -= hours * HOUR_IN_MILLISECONDS;
    
        var minutes = Math.floor(difference / MINUTE_IN_MILLISECONDS);
        difference -= minutes * MINUTE_IN_MILLISECONDS;
    
        var seconds = Math.floor(difference / 1000);
    
        console.log(days + ":" + hours + ":" + minutes + ":" + seconds);
    }
    
    countdownInterval = setInterval(countdown, 1000);
    

    Here's the Fiddle