利用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 clas ...
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倒计时组件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
沃梦达教程
本文标题为:利用momentJs做一个倒计时组件(实例代码)
猜你喜欢
- layui数据表格以及传数据方式 2022-12-13
- vue keep-alive 2023-10-08
- 深入浅析AjaxFileUpload实现单个文件的 Ajax 文件上传库 2022-12-15
- javascript 判断当前浏览器版本并判断ie版本 2023-08-08
- ajax实现输入提示效果 2023-02-14
- 基于CORS实现WebApi Ajax 跨域请求解决方法 2023-02-14
- JS实现左侧菜单工具栏 2022-08-31
- 1 Vue - 简介 2023-10-08
- jsPlumb+vue创建字段映射关系 2023-10-08
- 关于 html:如何从 css 表中删除边距和填充 2022-09-21