javascript - 多个 JavaScript 倒计时日期?

标签 javascript datetime countdown countdowntimer

所以我目前有一个约会对象,但我想要多个并且他们有唯一的 ID。

我目前可以使用 <div id="countdown"></div>将它放在我的 html 中,但我想做一些类似 id="countdown1"、id="countdown2"、id="countdown3"等的事情。

为了更深入地解释,我尝试使用多个这样的日期,每个日期都有唯一的 ID,这样我就可以将每个单独的日期都放在 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);

我尝试了很多不同的方法并多次搜索解决方案,但一无所获。对此的任何帮助将不胜感激。

最佳答案

使用对象,这是一个更干净的解决方案。

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/

编辑:确保在初始化和显示函数中使用相同的日期时间格式。

关于javascript - 多个 JavaScript 倒计时日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33600502/

相关文章:

linux - 如何设置其他服务器的日期与当前服务器的日期相同?

php - 来自 php/mysql 数据库的实时日期时间倒计时问题

javascript - 当存在多个比较运算符时,为什么 onkeypress 不使用 IE 调用 javascript 函数

javascript - Grunt 在端口 8000 上运行,我不知道为什么

javascript - InvalidSelectorError,需要帮助定义我的 xpath 选择器

javascript - React-Native:访问父组件内的子组件功能

datetime - 如何手动从时间戳中提取一天中的小时数?

r - 变量 X 的类型(列表)无效,其中 X 是日期类

javascript - 选项卡处于非事件状态时倒数计时器 'delays'?

javascript - 倒计时计算毫秒