vue 倒计时
<template>
<div>
<span >{{ hour }}:{{ minute }}:{{ second }}</span>
</div>
</template>
<script>
export default {
data() {
return {
hour: 0,
minute: 0,
second: 0,
};
},
props: {
remainTimea: {
// 倒计时间总秒数
default: "",
},
},
mounted() {
this.remainTime = (this.remainTimea - Date.parse(new Date())) /1000
if (this.remainTime > 0) {
this.hour = Math.floor((this.remainTime / 3600) % 24);
this.minute = Math.floor((this.remainTime / 60) % 60);
this.second = Math.floor(this.remainTime % 60);
this.countDowm();
}
},
methods: {
countDowm() {
var self = this;
clearInterval(this.promiseTimer);
this.promiseTimer = 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;
self.$emit("countDowmEnd", true);
clearInterval(self.promiseTimer);
} 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);
},
formatNum(num) {
return num < 10 ? "0" + num : "" + num;
},
},
};
</script>

浙公网安备 33010602011771号