小程序写倒计时
<view class="content">
<block wx:for="{{listData}}" wx:key="idx" wx:for-item="item" wx:for-index="{{idx}}">
<view class="tip">
<view class="dis">
<view class='dis_time left'>倒计时:{{item.countDown}}</view>
</view>
</view>
</block>
</view>
data:{
listData: []
}
onLoad() {
this.setData({
listData: [{
"time": "600000", //想要倒计时几分钟,换算成毫秒
}]
})
this.setCountDown();
},
setCountDown: function () {
if (true) {
let time = 1000;
let {
listData
} = this.data;
console.log(listData)
let list = listData.map((v, i) => {
if (v.time <= 0) {
v.time = 0;
}
let formatTime = this.getFormat(v.time);
v.time -= time;
v.countDown = `${formatTime.mm}分${formatTime.ss}秒`;
return v;
})
this.setData({
listData: list
});
// 计时结束
if (list[0].countDown === '00分00秒') {
return false;
}
setTimeout(this.setCountDown, time);
} else {
//这里我是取消了事件之后就不重新计时
this.setData({
listData: [{
"time": "600000",
}]
})
}
},
// 格式化时间
getFormat: function (msec) {
let ss = parseInt(msec / 1000);
let mm = 0;
if (ss > 60) {
mm = parseInt(ss / 60);
ss = parseInt(ss % 60);
if (mm > 60) {
mm = parseInt(mm % 60);
}
}
ss = ss > 9 ? ss : `0${ss}`;
mm = mm > 9 ? mm : `0${mm}`;
return {
ss,
mm,
};
},