小程序秒杀商城列表循环倒计时功能

欢迎加我技术交流QQ群 :811956471

html:
<view class="flex_l_r_c" wx:for="{{listData}}" wx:key="id">
    <view>{{item.id}}</view>
    <view>{{item.memberNickname}}</view>
    <view>{{item.countDown}}</view>
     <view wx:if="{{item.remainTime<0}}">活动已结束</view>
  </view>
js:
Page({
  data: {
    listData: []
  },

  onLoad: function(options) {
    let list = [{
        id: 1,
        memberNickname: '商品名称1',
        remainTime: 1590824570000
      },
      {
        id: 2,
        memberNickname: '商品名称2',
        remainTime: 1559203226
      },
      {
        id: 3,
        memberNickname: '商品名称3',
        remainTime: 15000
      }
    ];
    this.setData({
      listData: list
    });
    this.setCountDown();
  },

  //倒计时
  setCountDown: function() {
    let time = 1000;
    let listData = this.data.listData;
    let list = listData.map((v, i) => {
      if (v.remainTime < 0) {
        v.remainTime = 0;
      }
      let formatTime = this.getFormat(v.remainTime);
      v.remainTime -= time;
      v.countDown = `${formatTime.day}天${formatTime.h}时${formatTime.m}分${formatTime.s}秒`;
      return v;
    })
    this.setData({
      listData: list
    });
    setTimeout(this.setCountDown, time);
  },

  /**
   * 格式化时间  1590824570   时间戳
   */

  getFormat: function(timeStamp) {
    let [day, hh, mm, ss] = [0, 0, 0, 0]
    day = Math.floor(timeStamp / 1000 / 60 / 60 / 24);
    hh = Math.floor(timeStamp / 1000 / 60 / 60 % 24);
    mm = Math.floor(timeStamp / 1000 / 60 % 60);
    ss = Math.floor(timeStamp / 1000 % 60);
    let h = hh > 9 ? hh : `0${hh}`;
    let m = mm > 9 ? mm : `0${mm}`;
    let s = ss > 9 ? ss : `0${ss}`;
    return {
      day, h, m, s
    };
  },
})


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容