vue项目最近做考试项目用到倒计时的js,特地记录一下
data() {
return {
//倒计时
hour: '',
minute: '',
second: '',
timer: '',
}
},
computed: {
hourString() {
return this.formatNum(this.hour)
},
minuteString() {
return this.formatNum(this.minute)
},
secondString() {
return this.formatNum(this.second)
}
},
created() {
// this.form.examinationLength 就是传入的数字
this.hour = Math.floor((this.form.examinationLength * 60 / 3600) % 24)
this.minute = Math.floor((this.form.examinationLength * 60 / 60) % 60)
this.second = Math.floor(this.form.examinationLength * 60 % 60)
},
method :{
//倒计时
countDowm() {
var self = this
clearInterval(this.timer)
this.timer = setInterval(function() {
if (self.hour === 0) {
if (self.minute !== 0 && self.second === 0) {
self.second = 59
self.minute -= 1
} else if (self.minute === 0 && self.second === 0) {
self.second = 0
clearInterval(self.timer)
} else {
self.second -= 1
}
} else {
if (self.minute !== 0 && self.second === 0) {
self.second = 59
self.minute -= 1
} else if (self.minute === 0 && self.second === 0) {
self.hour -= 1
self.minute = 59
self.second = 59
} else {
self.second -= 1
}
}
}, 1000)
},
}