如何倒数到0秒?

时间:2014-08-05 10:42:48

标签: javascript jquery

如何倒数到0秒?

完成倒计时后,它会显示00days00hours00minutes01seconds

我想像这样显示0秒00days00hours00minutes00seconds我该怎么办?

http://jsfiddle.net/D3E9G/6/

2 个答案:

答案 0 :(得分:1)

你去吧

(function($) {
    $.fn.countdown = function(options) {
        // default options
        var defaults = {
            attrName : 'data-diff',
            tmpl : '<span class="hour">%{h}</span><span class="minute">%{m}</span>minutes<span class="second">%{s}</span>seconds',
            end : 'has ended',
            afterEnd : null
        };
        options = $.extend(defaults, options);


        // trim zero
        function trimZero(str) {
            return parseInt(str.replace(/^0/g, ''));
        }
        // convert string to time
        function getDiffTime(str) {
            var m;
            if ((m = /^(\d{4})[^\d]+(\d{1,2})[^\d]+(\d{1,2})\s+(\d{2})[^\d]+(\d{1,2})[^\d]+(\d{1,2})$/.exec(str))) {
                var year = trimZero(m[1]),
                    month = trimZero(m[2]) - 1,
                    day = trimZero(m[3]),
                    hour = trimZero(m[4]),
                    minute = trimZero(m[5]),
                    second = trimZero(m[6]);
                return Math.floor((new Date(year, month, day, hour, minute, second).getTime() - new Date().getTime()) / 1000);
            }
            return parseInt(str);
        }
        // format time
        function format(diff) {
            var tmpl = options.tmpl, day, hour, minute, second;
            day = /%\{d\}/.test(tmpl) ? Math.floor(diff / 86400) : 0;
            hour = Math.floor((diff - day * 86400) / 3600);
            minute = Math.floor((diff - day * 86400 - hour * 3600) / 60);
            second = diff - day * 86400 - hour * 3600 - minute * 60;

            day = ("00" + day).substr(-2);            
            hour = ("00" + hour).substr(-2);            
            minute = ("00" + minute).substr(-2);            
            second = ("00" + second).substr(-2);

            tmpl = tmpl.replace(/%\{d\}/ig, day)
                .replace(/%\{h\}/ig, hour)
                .replace(/%\{m\}/ig, minute)
                .replace(/%\{s\}/ig, second);
            return tmpl;
        }
        // main
        return this.each(function() {
            var el = this,
                diff = getDiffTime($(el).attr(options.attrName));
            function update() {
                if (diff < 0) {
                    if (options.afterEnd) {
                        options.afterEnd();
                    }
                    return;
                }
                $(el).html(format(diff));
                setTimeout(function() {
                    diff--;
                    update();
                }, 1000);
            }
            update();
        });
    };
})(jQuery);





            $(function() {
                $('.J_countdown2').countdown({
                    tmpl : '<span>%{d}</span>days<span>%{h}</span>hours<span>%{m}</span>minutes<span>%{s}</span>seconds'
                });
            });

答案 1 :(得分:0)

diff <= -1

而不是

diff <= 0
更新功能中的

http://jsfiddle.net/D3E9G/9/