微信小程序——订单列表倒计时

       由于最近两三个月一直在做一个项目,导致这短时间也没有时间写博客,现在项目基本结束,下面就将项目中遇到的问题记录下,便于以后查阅方便,同时给需要的人一点思路

       今天主要讲解下微信小程序中遇到的一个问题——订单列表中待支付订单的支付倒计时问题。废话不多说,先给出主要解决代码:

  /**
   * 未支付订单倒计时
   */
  countDown:function(){
    var that = this;
    that.data.timer = setInterval(function () {
      var orders = that.data.orderArray;
      for (var i = 0; i < orders.length; i++) {
        var status = orders[i].status;
        if (status == 0) {
          var create_time = orders[i].create_time;
          //计算剩余时间差值
          var leftTime = (new Date(create_time).getTime() + 30 * 60 * 1000) - (new Date().getTime());
          if (leftTime > 0) {
            //计算剩余的分钟
            var minutes = util.formatNumber(parseInt(leftTime / 1000 / 60 % 60, 10));
            //计算剩余的秒数
            var seconds = util.formatNumber(parseInt(leftTime / 1000 % 60, 10));
            var left_time = minutes + ":" + seconds;
            orders[i].left_time = left_time;
          }else{
            //移除超时未支付的订单
            orders.splice(i, 1);
          }
        }
      }
      that.setData({
        orderArray:orders
      });
    }, 1000);
  },

讲解:定义一个定时器,每秒执行一次。定时器内对订单列表数组进行遍历,根据订单的状态,只处理未支付订单,根据自己的业务逻辑计算订单支付剩余时间(我的订单支付时间是30分钟),如果剩余时间大于0,格式化剩余时间并显示,否则移除超时未支付的订单(防止重复遍历)。最后,不要忘记数据回写setData,否则剩余支付时间不会显示!!!

       在退出页面的时候,不要忘记清除定时器

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    clearInterval(this.data.timer);
  },

让我们一起遨游在代码的海洋里!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值