uniapp答问卷倒计时显示

1、先判断当前问卷是否设置了允许最长答题时间,如果没有设置则答题时间不受限制,如果设置则进行倒计时计算

2、进入领取页面计时生效,所以开始答题时当前时间戳 - 后台返回的时间戳为耗时差,再用最长答题时间 - 耗时差为剩余答题时间

// 倒计时计算
if (_this.consumeTime > 0) {
	// 耗时 = 当前时间 - 开始答题时间
	let usedTime = (new Date().getTime() - _this.startTime) / 1000 / 60;
	// 剩余答题时间 = 答题时间 - 耗时
	let time = _this.consumeTime - usedTime;
	if (usedTime > _this.consumeTime) {
		_this.consumeTime = '00 : 00';
	}
	else {
		_this.countDown(time);
	}
}

3、倒计时计算,判断是从外部进入页面,还是正常倒计时,加入从05:00减为04:59

countDown(val) {
   let _this = this;
   let m = parseInt(val); // 分钟
   let s = null; // 秒
   let time = String(val);
   if (time.indexOf('.') > -1) {
        // 获取小数点后两位,计算秒
		let point = time.substring(time.indexOf("."), time.indexOf(".") + 3);
		let num = parseFloat(0 + point);
		s = parseInt(num * 60);
	} else {
		s = 59;
	}
    getCountDown();
    if (m !== 0 || s !== 0) {
        setInterval(() => {
            getCountDown();
        }, 1000);
     }

     function getCountDown() {
         if (m >= 0) {
             if (s > 0) {
                 let time = _this.formatterConsumeTime(m, s);
                  _this.consumeTime = time;
                  s--;
              }
              else if (s === 0) {
                 let time = _this.formatterConsumeTime(m, s);
                  _this.consumeTime = time;
                  m--;
                  s = 59;
              }
         }
    }
},
formatterConsumeTime(m, s) {
    let min = m < 10 ? `0${m}` : m;
    let sec = s < 10 ? `0${s}` : s;
    if ((Number(min) === 1 && Number(sec) === 0)) {
        this.isLess1minute = true;
        this.minuteTime = '01:00';
     }
     if (Number(min) === 0) {
         this.isLess1minute = true;
         this.minuteTime = `${sec}`;
     }
     return `${min} : ${sec}`;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值