多个JavaScript倒数日期? [英] Multiple JavaScript countdown dates?

查看:54
本文介绍了多个JavaScript倒数日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我目前有一个日期,但我希望多个日期并且让它们具有唯一的ID。

So I currently have one date, but I want multiple and for them to have unique id's.

我目前可以使用< div id = countdown>< / div> 放在我的html中,但是我想做类似id = countdown1,id = countdown2,id = countdown3的操作,等等。

I can currently use <div id="countdown"></div> to put it in my html, but I want to do something like id="countdown1", id="countdown2", id="countdown3", etc.

为了更深入地解释,我尝试使用多个这样的日期(每个日期都有唯一的ID),以便将每个单独的日期都放在html中。

To explain more in depth i'm trying to have several dates like this with unique id's for each one so I can put each individual one in the html.

var end = new Date(Date.UTC(2015, 10, 10));
var end = new Date(Date.UTC(2015, 10, 11));
var end = new Date(Date.UTC(2015, 10, 12));
var end = new Date(Date.UTC(2015, 10, 13));

这是我当前的脚本:

var end = new Date(Date.UTC(2015, 10, 10, 5));

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 + ' Day | ';
    document.getElementById('countdown').innerHTML += hours + ' Hours | ';
    document.getElementById('countdown').innerHTML += minutes + ' Minutes | ';
    document.getElementById('countdown').innerHTML += seconds + ' Seconds ';
}

timer = setInterval(showRemaining, 1000);

我尝试了很多不同的方法,并多次搜索解决方案,但一无所获。

I tried a lot of different things and searched many times for a solution but have found nothing. Any help on this would be very appreciated.

推荐答案

使用对象,这是一种更清洁的解决方案。

Use object, it is a cleaner solution.

function Timer(holder) {

        var controller = {
            holder: holder,
            end: null,
            intervalID:0,
            display: function () {
                var _second = 1000;
                var _minute = _second * 60;
                var _hour = _minute * 60;
                var _day = _hour * 24;

                var msg = "";

                var now = new Date();

                var distance = controller.end - now;
                if (distance < 0) {

                    clearInterval(controller.intervalID);
                    controller.holder.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);
                controller.holder.innerHTML = days + ' Day | ' + hours + ' Hours | ' + minutes + ' Minutes | ' + seconds + ' Seconds ';

            }
        }

        this.countDown = function (end) {
            controller.end = end;
            controller.intervalID = setInterval(controller.display, 1000);
        }
    }

https://jsfiddle.net/mLr571tj/

编辑:请确保使用初始化和显示功能使用相同的日期时间格式。

Make sure you use the same date time format on initialization and in display function.

这篇关于多个JavaScript倒数日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆