在程序开发过程中,有时会用到倒计时,根据所给结束时间(例如:2018-10-01 00:00:00)算出剩余天数、时分秒,先总结的微信小程序的倒计时分享给大家!!
在后台异步返回结束时间时调用this.countDown(endTime)即可;
data:{
lastTime: '', //剩余时间
endTimeText:'已结束',//结束文字
}
//参数endTime格式2018-10-01 00:00:00
countDown(endTime) {
let endTimeStr = endTime.toString();
let endTimeNum = new Date(Date.parse(endTimeStr.replace(/-/g, "/"))).getTime();
let self = this;
let timer = setInterval(function() {
let nowTime = new Date();
let t = endTimeNum - nowTime.getTime();
if (t > 0) {
let day = Math.floor(t / 86400000);
let hour = Math.floor((t / 3600000) % 24);
let min = Math.floor((t / 60000) % 60);
let sec = Math.floor((t / 1000) % 60);
hour = hour < 10 ? `0${hour}` : hour;
min = min < 10 ? `0${min}` : min;
sec = sec < 10 ? `0${sec}` : sec;
let format = '';
if (day > 0) {
format = `${day}天${hour}时${min}分${sec}秒`;
}
if (day <= 0 && hour > 0) {
format = `${hour}时${min}分${sec}秒`;
}
if (day <= 0 && hour <= 0) {
format = `${min}分${sec}秒`;
}
self.setData({
lastTime: format
});
} else {
clearInterval(timer);
self.setData({
lastTime: self.data.endTimeText,
});
}
}, 1000);
}
复制代码