小程序秒杀倒计时
const time = {
start: 1534212040000, //倒计时开始时间
end: 1534248000000 //倒计时结束时间
}
page({
onload: function() {
// 倒计时活动开始
let tm = this.getnow();
if (tm < time.start) { //活动未开始
console.log('活动未开始')
let cd1 = setInterval(() => {
let watch1 = this.countDown(time);
if (watch1 == '00:00:00') {
clearInterval(cd1)
this.setData({
clock: ''
})
} else if (watch1 == 'noStart') {
this.setData({
clock: ''
})
} else {
this.setData({
clock: watch1
})
}
}, 1000)
} else if (tm > time.end) { //活动结束
console.log('活动结束')
this.setData({
clock: ''
})
} else { //活动正在进行
console.log('活动正在进行')
let cd2 = setInterval(() => {
let watch = this.countDown(time);
if (watch == '00:00:00') {
clearInterval(cd2)
this.setData({
clock: ''
})
} else {
this.setData({
clock: watch
})
}
}, 1000)
}
// 倒计时活动结束
}
getnow: function() { //获取当前时间戳
let timenow = new Date();
let timestamp = timenow.getTime();
return timestamp;
},
countDown: function(time) { //倒计时时间计算
let nt = this.getnow();
if (time.end <= nt) {
return '00:00:00'
} else if (time.start > nt) {
return 'noStart'
}
let h = Math.floor((time.end - nt) / 3600000)
if (h < 10) {
h = '0' + h
}
let m = Math.floor(((time.end - nt) % 3600000) / 60000)
if (m < 10) {
m = '0' + m
}
let s = Math.floor(((time.end - nt) % 60000) / 1000)
if (s < 10) {
s = '0' + s
}
if (Number(h) < 24) {
return `${h}:${m}:${s}`
}
}
})