JS中的JS倒计时

时间:2017-07-15 14:07:08

标签: javascript html css timer countdown

对于网站,我需要倒计时到特定日期。我试着在Javascript中自己编写这样的代码,但是我失败了。所以我搜索了一个模板。我在Stack Overflow上找到了一个,它的效果非常好。但我有一个问题。我需要单独设置日期,小时,分钟和秒的格式。在我发现的代码中,一切都是由Javascript写成一个单独的div。所以我希望Javascript单独编辑所有4个div(天,小时,分钟,秒)。有人能帮帮我吗?

<script>
    var end = new Date('07/16/2017 00:00 AM');

        var _second = 1000;
        var _minute = _second * 60;
        var _hour = _minute * 60;
        var _day = _hour * 24;
        var timer;

        function showRemaining() {
            var now = new Date();
            var distance = end - now;
            if (distance < 0) {

                clearInterval(timer);
                document.getElementById('countdown').innerHTML = 'EXPIRED!';

                return;
            }
            var days = Math.floor(distance / _day);
            var hours = Math.floor((distance % _day) / _hour);
            var minutes = Math.floor((distance % _hour) / _minute);
            var seconds = Math.floor((distance % _minute) / _second);

            document.getElementById('countdown').innerHTML = days + 'days ';
            document.getElementById('countdown').innerHTML += hours + 'hrs ';
            document.getElementById('countdown').innerHTML += minutes + 'mins ';
            document.getElementById('countdown').innerHTML += seconds + 'secs';
        }

        timer = setInterval(showRemaining, 1000);
    </script>
    <div id="countdown">

        <div id="days"></div>
        <div id="hrs"></div>
        <div id="mins"></div>
        <div id="secs"></div>

    </div>

2 个答案:

答案 0 :(得分:3)

你需要改变的是:

document.getElementById('countdown').innerHTML = days + 'days ';
document.getElementById('countdown').innerHTML += hours + 'hrs ';
document.getElementById('countdown').innerHTML += minutes + 'mins ';
document.getElementById('countdown').innerHTML += seconds + 'secs';

为所有人提供正确的 div id而不是countdown,并将.innerHTML +=更改为.innerHTML =

&#13;
&#13;
<script>
    var end = new Date('07/16/2017 00:00 AM');

        var _second = 1000;
        var _minute = _second * 60;
        var _hour = _minute * 60;
        var _day = _hour * 24;
        var timer;

        function showRemaining() {
            var now = new Date();
            var distance = end - now;
            if (distance < 0) {

                clearInterval(timer);
                document.getElementById('countdown').innerHTML = 'EXPIRED!';

                return;
            }
            var days = Math.floor(distance / _day);
            var hours = Math.floor((distance % _day) / _hour);
            var minutes = Math.floor((distance % _hour) / _minute);
            var seconds = Math.floor((distance % _minute) / _second);

            document.getElementById('days').innerHTML = days + 'days ';
            document.getElementById('hrs').innerHTML = hours + 'hrs ';
            document.getElementById('mins').innerHTML = minutes + 'mins ';
            document.getElementById('secs').innerHTML = seconds + 'secs';
        }

        timer = setInterval(showRemaining, 1000);
    </script>
    <div id="countdown">

        <div id="days"></div>
        <div id="hrs"></div>
        <div id="mins"></div>
        <div id="secs"></div>

    </div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

希望可以提供帮助!

链接在线运行:https://jsbin.com/sivejolapi/edit?html,output

<script>
    var end = new Date('07/16/2017 00:00 AM');

    var _second = 1000;
    var _minute = _second * 60;
    var _hour = _minute * 60;
    var _day = _hour * 24;
    var timer;

    function showRemaining() {
        var now = new Date();
        var distance = end - now;
        if (distance < 0) {

            clearInterval(timer);
            document.getElementById('countdown').innerHTML = 'EXPIRED!';

            return;
        }
        var days = Math.floor(distance / _day);
        var hours = Math.floor((distance % _day) / _hour);
        var minutes = Math.floor((distance % _hour) / _minute);
        var seconds = Math.floor((distance % _minute) / _second);

        document.getElementById('days').innerHTML = days + 'days ';
        document.getElementById('hrs').innerHTML = hours + 'hrs ';
        document.getElementById('mins').innerHTML = minutes + 'mins ';
        document.getElementById('secs').innerHTML = seconds + 'secs';
    }

    timer = setInterval(showRemaining, 1000);
</script>
<div class="countdown">

    <div id="days"></div>
    <div id="hrs"></div>
    <div id="mins"></div>
    <div id="secs"></div>

</div>

`