html
<view class="countdown">
<text>倒计时:</text>
<text wx:for="{{countdown}}" wx:key="index">{{item}}</text>
</view>
ts
data: {
countdown: [], // 存放倒计时数组
targetTime: '', // 目标时间戳
intervalId: null, // 定时器ID
}
startCountdown () {
const that = this;
// 每秒更新一次倒计时
this.data.intervalId = setInterval(function () {
const now = new Date().getTime();
const diff = that.data.targetTime - now;
if (diff <= 0) {
// 倒计时结束,清除定时器
clearInterval(that.data.intervalId);
that.setData({
countdown: ['倒计时结束'],
});
} else {
// 计算剩余的天、时、分、秒
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((diff % (1000 * 60)) / 1000);
that.setData({
countdown: [days, '天', hours, '时', minutes, '分', seconds, '秒'],
});
}
}, 1000);
},
onLoad: function (options) {
this.setData({
targetTime: new Date('2024-04-28 16:53:10').getTime(),
});
this.startCountdown();
}