根据当前时间计算倒计时,在列表中计算倒计时

最近在写一个类似拼夕夕拼团的活动,就几个人付相同的钱,即可成团。这就需要一个倒计时,来计算活动结束时间

代码如下:

            var that = this;
            var h,m,s,t;
            var leftTime =that.classInfo.countdown;  //这个时间是倒计时的毫秒数,我这里是由后台返的,也可自行计算(既活动结束时间转化成毫秒减去当前时间转化成毫秒),若为负数或者为0,则当前倒计时结束
            console.log(leftTime);
            that.cxtimer = setInterval(function () {
                leftTime--;
                if (leftTime>0){
                    h = Math.floor(leftTime/60/60/24);
                    m = Math.floor(leftTime/60/60) - h*24;
                    s = Math.floor(leftTime/60 - h*24*60 - m*60);
                    t = Math.floor(leftTime - s*60 - m*60*60 - h*24*60*60)
                        // console.log(h,m,s)
                    that.cxh = h<10?'0'+h:h;//这里是天,时,分,秒,等
                    that.cxm = m<10?'0'+m:m;
                    that.cxs = s<10?'0'+s:s;
                    that.cxt = t<10?'0'+t:t;
                    // console.log(that.cxh);
                }
                if(Number(leftTime)<=1){
                    that.cxh = '00'
                    that.cxm = '00'
                    that.cxs = '00'
                    that.cxt = '00'
                    clearInterval(that.cxtimer);
                }
            }.bind(that),1000)

  如果在一个列表中展示倒计时,该如何实现呢,代码如下:

   timer() { //页面多个定时器 //主要逻辑都在这页面更新
                let that = this;
                that.list = that.classInfo.order;//这是需要展示倒计时的列表
                var listtime= that.listtime;
                for(var i=0;i<that.list.length;i++){
                    that.listtime[i] = ''
                    var item = that.list[i];
                    that.timeradd(item,i,1);
                }
        },

  timeradd(item,i){
            var that = this;
            var h,m,s,t,rens;
            var leftTime = item.countdown;//列表中每一项的倒计时
            that.timergroup = setInterval(function () {
                leftTime--;
                if (leftTime>0){
                    h = Math.floor(leftTime/60/60/24);
                    m = Math.floor(leftTime/60/60) - h*24;
                    s = Math.floor(leftTime/60 - h*24*60 - m*60);
                    t = Math.floor(leftTime - s*60 - m*60*60 - h*24*60*60);
                    rens = h+''+m+''+s+''+t+'';
                }else{
                    rens = '0天0时0分0秒';
                    clearInterval(that.timergroup);
                }
                  that.listtime[i] = rens;
                that.$forceUpdate()//强制刷新数据
                }.bind(that),1000)

        },

以上即是倒计时的写法

 

posted @ 2023-03-20 09:51  冰晨之露  阅读(29)  评论(0编辑  收藏  举报