两个小时倒计时计时器

嗨喽,大家好。我是老黑,今天开发了一个两个小时的倒计时的计时器,平时用的60秒倒计时比较多,这次的两个小时倒计时的计时器根本上和60秒倒计时一样,只不过需要多判断点分钟和小时的逻辑。
1、效果图
如图所示,当点击开始的时候,两个小时开始倒计时
在这里插入图片描述

2、分析
(1)、需要一个设计一个封装设计计时器。
(2)、倒计时的计时器秒针小于0的时候,分针要减一,分针小于0的时候,时针要减一,当时针小于0的时候,此时分针、秒针的值都要设置为0.并且计时器要停止。
(3)、样式的难点就是如何把时针和分针拆开放在两个容器中?可以先考虑一下,开发的时候我说一下我的解决办法。

3、开发
(1)、wxml主要代码

            <view class="time_item">
                {{hour}}
            </view>
            <view class="time_items">
                :
            </view>
            <view class="time_item">
                {{firstMinute}}
            </view>
            <view class="time_item">
                {{lastMinute}}
            </view>
             <view class="time_items">
                :
            </view>
            <view class="time_item">
                {{firstSecond}}
            </view>
              <view class="time_item">
                {{lastSecond}}
            </view>
        </view>

(2)、js主要代码

 //倒计时
 countDown() {
   const that = this;
   clearInterval(that.data.timer)
   if (that.data.hour_flag == 'one') {
     var h = 0;
     var m = 59;
     var s = 60;
   } else {
     var h = 1;
     var m = 59;
     var s = 60;
   }
   var timer = setInterval(function () {
     --s;
     if (s < 0) {
       --m;
       s = 59;
     }
     if (m < 0) {
       --h;
       m = 59
     }
     if (h < 0) {
       s = 0;
       m = 0;
     }
     if(h == 0 && m == 0 && s ==0){
       clearInterval(that.data.timer);
       that.alarmRemind()
     }
     
     //小于10的时候进行补位
     function checkTime(i) {
       if (i < 10) {
         i = '0' + i
       }
       return i;
     }
     s = checkTime(s);
     let n = checkTime(m)
     if(n.length >= 2){
        m = n.slice(-2);
     }
     let strMinute = m.toString();
     let splMinute = strMinute.split("");
     let firstMinute = splMinute[0];
     let lastMinute = splMinute[1];

     let strSecond = s.toString();
     let splSecond = strSecond.split("");
     let firstSecond = splSecond[0];
     let lastSecond = splSecond[1]
     that.setData({
       hour: h,
       firstMinute: firstMinute,
       lastMinute: lastMinute,
       firstSecond: firstSecond,
       lastSecond: lastSecond
     });
   }, 1000);
   that.setData({
     timer: timer
   })
 },

3、总结
(1)、没错,我用的是js中的split()方法来将倒计时的数字进行拆分然后放到不同的容器中的
(2)、开发过程中遇到的问题就是除了拆分数字,还有就是当秒针或者分针小于10的时候进行0来补位,否则就会出现分针的倒置。
(3)、还有一个问题就是当计时器在不同的情况下要暂停,或者清空重新开始执行,这个时候就要用到clearInterval(timer)来解决了。
(4)、最后感谢博主的文章。https://www.bbsmax.com/A/qVdeqkZ1dP/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值