实现倒计时功能 微信小程序
1.初始化数据:
data: {
//倒计时
day: '00',
hou: '00',
min: '00',
sec: '00',
//结束的日期
endtime_countdown: "",
}
2.倒计时函数体:
countDown_: function() { //倒计时函数
var endTime_ = this.data.endtime_countdown;
// 获取当前时间,同时得到活动结束时间数组
let newTime = new Date().getTime();
// 对结束时间进行处理渲染到页面
let endTime = new Date(endTime_).getTime();
let obj = null;
// 如果活动未结束,对时间进行处理
var that = this;
if (endTime - newTime > 0) {
let time = (endTime - newTime) / 1000;
// 获取天、时、分、秒
let day = parseInt(time / (60 * 60 * 24));
let hou = parseInt(time % (60 * 60 * 24) / 3600);
let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
that.setData({
day: that.timeFormat(day),
hou: that.timeFormat(hou),
min: that.timeFormat(min),
sec: that.timeFormat(sec)
});
} else { //活动已结束,全部设置为'00'
that.setData({
day: '00',
hou: '00',
min: '00',
sec: '00'
});
}
},
3.执行倒计时函数的方法体(比如放在接口请求成功后执行)
//endTime_ 传入如后台返回的结束时间 如:"2018-11-20 23:59:59.0"
countDown: function(endTime_) {
this.setData({
endtime_countdown: endTime_
});
var that = this;
//每一秒钟执行一次
setInterval(function() {
that.countDown_();
// console.log("定时器");
}, 1000);
},
4.格式化小于10的函数
//比如 将时间参数 5转为05
timeFormat: function(param) {
return param < 10 ? '0' + param : param;
},
5.执行效果