GSaunders
GSaunders

Reputation: 548

Javascript Countdown from 8am-9pm

I have a Javascript countdown from 12am to 9pm each day and then resets itself.

I want the countdown to go from 8am-9pm instead of 12am-9pm. I have been fiddling with this but I can't seem to make it work with a start time other than the defaulted 12am.

My question is how can I make the countdown from 8-21 hours instead of 0-21 hours?

Javascript:

if (document.getElementById('countdown')) {
pad = function(n, len) { // leading 0's
    var s = n.toString();
    return (new Array( (len - s.length + 1) ).join('0')) + s;
};
function countDown(){
    var now = new Date();
    if ( (now.getDay() >= 1) && (now.getDay() <= 7) ) { // Monday to Sunday
        var target = 21; // 21:00hrs is the cut-off point
        if (now.getHours() < target)  { //
            var hrs = (target - 1) - now.getHours();
            if (hrs < 0) hrs = 0;
            var mins = 59 - now.getMinutes();
            if (mins < 0) mins = 0;
            var secs = 59 - now.getSeconds();
            if (secs < 0) secs = 0;
            var str = pad(hrs, 2) + ':' + pad(mins, 2) + '.<small>' + pad(secs, 2) + '</small>';
            document.getElementById('countdown').innerHTML = str;

        }
                    else
    $('.wereOpen').hide();
    }
}
var timerRunning = setInterval('countDown()', 1000);
}


Website

Upvotes: 1

Views: 276

Answers (1)

Kiran
Kiran

Reputation: 1798

I don't fully understand your question, but could you just add now.getHours() >= 7 to your if statement, i.e.

...
if (now.getHours() >= 7 && now.getHours() < target) {
   ...
} else {
   $('.wereOpen').hide();
}
...

EDIT

In light of the comment, the following should work:

if (document.getElementById('countdown')) {
pad = function(n, len) { // leading 0's
    var s = n.toString();
    return (new Array( (len - s.length + 1) ).join('0')) + s;
};
function countDown(){
    var now = new Date();
    if ( (now.getDay() >= 1) && (now.getDay() <= 7) ) { // Monday to Sunday
        var target = 21; // 21:00hrs is the cut-off point
        var hours = now.getHours(); //get hours
        if(hours < 8 || hours >= target) {
            $('.wereOpen').hide();
            return;
        } else
            $('.wereOpen').show();

        var hrs = (target - 1) - hours;
        if (hrs < 0) hrs = 0;
        var mins = 59 - now.getMinutes();
        if (mins < 0) mins = 0;
        var secs = 59 - now.getSeconds();
        if (secs < 0) secs = 0;
        var str = pad(hrs, 2) + ':' + pad(mins, 2) + '.<small>' + pad(secs, 2) + '</small>';
        document.getElementById('countdown').innerHTML = str;
    }
}
var timerRunning = setInterval('countDown()', 1000);

}

Upvotes: 1

Related Questions