訂單過期定時器的實(shí)現(xiàn)

引言:訂單列表中未支付的訂單,需要設(shè)置一個過期時間,并顯示倒計時

具體步驟:

  • 獲取未支付的訂單數(shù)據(jù)后,加載定時器
  • 移除未支付已過期的訂單
  • 退出頁面卸載定時器
  • 后臺處理過期時間

小程序端

1、小程序中獲取當(dāng)前時間: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;
          //當(dāng)前時間
          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]);
                }
            }
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容