利用momentJs做一个倒计时组件(实例代码)
更新时间:2021年12月17日 16:52:51 作者:小菜波
这篇文章主要介绍了利用momentJs做一个倒计时组件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
今天抽空给大家介绍下vue和moment做的一个倒计时,具体内容如下所示:
展示样式:

<template>
<div class="table-right flex-a-center">
<div class="time-text">
<span class="timeTextSpan" v-for="item,index of h" >{{item}}</span>
<span class="timeTextSpan1" >: </span>
<span class="timeTextSpan" v-for="item,index of m" >{{item}}</span>
<span class="timeTextSpan1" >: </span>
<span class="timeTextSpan" v-for="item,index of s" >{{item}}</span>
</div>
</div>
</template>
<script>
import moment from 'moment'
export default {
props: {
endTime: { }, //接收得最后时间 2021-12-17 16:29:20
},
data() {
//这里存放数据
return {
h:'00',
m:'00',
s:'00',
timer:null
};
},
watch: {
endTime: {
handler(e) {
if (e) {
let self = this
clearInterval(this.timer)
this.timer = setInterval(function(){self.init()},1000)
}
},
deep: true,
immediate: true
}
},
mounted() {
let self = this
self.init()
clearInterval(this.timer)
this.timer = setInterval(function(){self.init()},1000)
},
//方法集合
methods: {
init(){
let time =moment(this.endTime).diff(moment())
if(time <= 0){
clearInterval(this.timer)
this.onOver()
return
}
let t = time / 1000;
let d = Math.floor(t / (24 * 3600)); //剩余天数,如果需要可以自行补上
let h = Math.floor((t - 24 * 3600 * d) / 3600) + d*24; //不需要天数,把天数转换成小时
let _h = Math.floor((t - 24 * 3600 * d) / 3600) //保留天数后得小时
let m = Math.floor((t - 24 * 3600 * d - _h * 3600) / 60);
let s = Math.floor((t - 24 * 3600 * d - _h * 3600 - m * 60));
this.h = String(h).length == 1? '0'+String(h):String(h)
this.m = String(m).length == 1? '0'+String(m):String(m)
this.s = String(s).length == 1? '0'+String(s):String(s)
},
onOver() {
this.$emit('over') //倒计时结束得回调
}
},
beforeDestroy(){
this.timer = null
clearInterval(this.timer)
}
}
</script>
<style lang='less' scoped>
@import url("@/assets/css/supplier.less");
.table-right {
font-size: 12px;
color: #757e8a;
.timeTextSpan{
display: inline-block;
width: 14px;
height: 22px;
text-align: center;
background: #F1F0F0;
border-radius: 2px;
margin-right: 2px;
font-size: 16px;
color: #ff8a2b;
font-weight: bold;
}
.timeTextSpan1{
display: inline-block;
width: 14px;
text-align: center;
vertical-align: bottom;
color:#202D40;
font-size: 16px;
font-weight: bold;
}
.time-text {
margin-left: 10px;
}
}
</style>
到此这篇关于利用momentJs做一个倒计时组件的文章就介绍到这了,更多相关momentJs倒计时组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
javascript将中国数字格式转换成欧式数字格式的简单实例
下面小编就为大家带来一篇javascript将中国数字格式转换成欧式数字格式的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-08-08
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
这篇文章主要介绍了JavaScript引用类型之基本包装类型,结合实例形式分析了javascript中Boolean、Number和String三种基本包装类型的基本用法与相关操作注意事项,需要的朋友可以参考下2018-08-08
JavaScript setTimeout与setTimeinterval使用案例详解
这篇文章主要介绍了JavaScript setTimeout与setTimeinterval使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下2021-08-08


最新评论