订单过期定时器的实现

引言:订单列表中未支付的订单,需要设置一个过期时间,并显示倒计时

具体步骤:

  • 获取未支付的订单数据后,加载定时器
  • 移除未支付已过期的订单
  • 退出页面卸载定时器
  • 后台处理过期时间

小程序端

1、小程序中获取当前时间:Date.parse(new Date()),但是注意,需要除以1000,才能和php后端获取的过期时间戳相减计算出剩余时间
2、data中保存timer为定时器
3、页面渲染出来直接是遍历过后的left_time

data: {
    dzf_order_list: [],
    dzf_curpage: 0,
    timer: '',
  },
/**
   * 未支付订单倒计时
   */
  countDown:function(){
    var that = this;
    that.data.timer = setInterval(function () {
      var orders = that.data.dzf_order_list;
      console.log(orders)
      for (var i = 0; i < orders.length; i++) {
        var status = orders[i].order_state;
        if (status == 1) {
          //过期时间
          var stop_time = orders[i].end_time;
          //当前时间
          var timestamp = Date.parse(new Date());  
          timestamp = timestamp / 1000;
          //计算剩余时间差值
          var leftTime = stop_time - timestamp;
          if (leftTime > 0) {
            var h = Math.floor(leftTime / 3600);
            var m = Math.floor((leftTime / 60 % 60));
            var s = Math.floor((leftTime % 60));
            var left_time = h + " : " + m + " : " + s;
            orders[i].left_time = left_time;
          }else{
            //移除超时未支付的订单
            orders.splice(i, 1);
          }
        }
      }
      that.setData({
        dzf_order_list:orders
      });
    }, 1000);
  },
<view class="p" wx:if="{{order.order_state==1}}">付款还剩
     <text class="color_r">{{order.left_time}}</text>
</view>

后台

       if($list){
            foreach ($list as $key => $val){
                if($val['order_state'] == 1){
                    //过期时间
                    $order_time = time() - $val['order_time'];
                    $d = floor($order_time / (3600 * 24));
                    $end = $val['order_time'] + (3600 * 24);
                    $list[$key]['end_time'] = $end;
                    if($d > 1){
                        unset($list[$key]);
                    }
                }
                if($val['order_state'] == 8 || $val['order_state'] == 6){
                    unset($list[$key]);
                }
            }
        }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容