毫秒数变成时分秒倒计时

Posted 我爱吃小丸子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了毫秒数变成时分秒倒计时相关的知识,希望对你有一定的参考价值。

js抽象代码:
;(function($){
/**时间间隔对象
 * @author Karajan
 * @param gap 间隔毫秒
 * @param {cT:当前时间(毫秒),eT:截止时间(毫秒),gap:间隔(毫秒),aEven:到点触发的事件function,iEven:初始化函数,初始化时被调用,lEven:倒计时结束触发方法}
 * 
 */
    function dateGap(gap){
        var di=[],dCt=[1000*60*60*24,1000*60*60,1000*60,1000,1];
        for(i=0;i<dCt.length;i++){
            di[i]=Math.floor(gap/dCt[i]);gap=gap%dCt[i];
        }
        this.format=function(fmt){
            var o = {"\\$d+":di[0],"\\$h+":di[1],"\\$m+":di[2],"\\$s+":di[3],"\\$S+":di[4]};
            for ( var k in o) {
                if (new RegExp("("+k+")").test(fmt)) {
                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1)?(o[k]):(("00" + o[k]).substr(("" + o[k]).length>2?2:("" + o[k]).length)));
                };
            }
            return fmt;
        }
        this.getD=function(){return di;}
    }
    $.gTimer=function(param){
        var opt={ct:null,et:null,gap:1000,aEven:null,iEven:null,lEven:null,Tindex:null};
        $.extend(opt,param);
        if(opt.ct==null||opt.et==null||opt.aEven==null)return;
        if(opt.iEven)opt.iEven.apply(opt);
        var t=setInterval(function(){
            $.extend(opt,{dt:new dateGap(opt.et-opt.ct)});
            if(opt.ct>=opt.et){opt.ct=opt.et;clearInterval(t);opt.dt=new dateGap(opt.et-opt.ct);if(opt.lEven)opt.lEven.apply(opt);};
            opt.aEven.apply(opt);
            opt.ct=opt.ct+opt.gap;
        },opt.gap);
        return t;
    };
})(jQuery);

 

 




页面数据显示的js操作:
 /**
        * @description 根据当前场次的时间戳计算倒计时
        * @method getTime
        * @since 2017-05-17
        * @author Karajan
        */
        getTime: function (){   
            var curT = new Number($("#timeCurrent").val() || ‘0‘);      
            var endT = new Number($("#timeEnding").val() || ‘0‘);
            var $time = $(".current .timeInfo");
            if(endT != ""){
                if(curT<endT){
                    $.gTimer({
                        ct: curT,
                        et: endT,
                        iEven: function() {},
                        aEven: function() {
                            var hh=this.dt.format("$hh");
                            var mm=this.dt.format("$mm");
                            var ss=this.dt.format("$s");
                           /* 倒计时 */
                            if(hh === "00" && mm === "00" && ss === "00") {
                                $time.html("已结束");
                                window.location.reload();
                            }else {
                                $time.html(hh + ‘:‘ + mm + ‘:‘ + ss);
                                $(".current .end").html("距离结束");
                            }
                        },
                        lEven: function() {}
                    });
                }else{
                }
            }
        },

 

以上是关于毫秒数变成时分秒倒计时的主要内容,如果未能解决你的问题,请参考以下文章

一个倒计时显示的毫秒数(模仿拼多多)

js中时间有时分秒往后推7天

C# 版本的 计时器类:精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出

如何用jquery实现时钟效果

时间倒计时

第34天:日期函数定时器倒计时