vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue moment设置倒计时

vue中使用moment设置倒计时的方法

作者:一室易安

这篇文章给大家介绍了vue中使用moment设置倒计时的方法,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

vue中使用moment 设置倒计时的方法

方法一

日常开发中时常需要使用倒计时的方法 现在进行封装一下

//第一步 引入moment
import moment from 'moment';

let nowTime:any = ref('')//当前时间
let diffTime:any = ref('')//当前时间和指定时间的差值
let countdown:any = ref(0)//倒计时
// 设置setInterval 用于每秒钟输出一次当前时间 更新倒计时的时间
let interval:any = setInterval(function() {
	//按照时分秒格式 获取当前时间  需要年月日这样设置 "YYYY-MMM-DDD HH:mm:ss"
	nowTime.value = moment().format("HH:mm:ss")
	//通过比较时间差 获取一个秒数值
	//比较时间差 按照秒seconds进行比较  如果是年月日比较如右设置 moment('2024-02-05 10:00:00', 'YYYY-MMM-DDD hh:mm:ss')
	//moment() 为当前时间
	diffTime.value = moment('10:00:00', 'hh:mm:ss').diff(moment(), "seconds")
	//倒计时   如果只需要最后5分钟才显示倒计时 这进行判断
	if(diffTime.value<5*60){
		let h = moment.duration(diffTime.value, 'seconds').hours()//小时
		let m = moment.duration(diffTime.value, 'seconds').minutes()//分钟
		let s = moment.duration(diffTime.value, 'seconds').seconds()//秒
		countdown.value = `${h<10?'0'+h:h}:${m<10?'0'+m:m}:${s<10?'0'+s:s}`
	}
	// 判断是否需要执行定时器
	if(diffTime.value < 0 ){
		clearInterval(interval)//清除定时器
	}
}, 1000);


//页面销毁时触发
onBeforeUnmount(()=>{
	clearInterval(interval)//清除定时器
})

方法二

思路: 结束时间 - 当前时间 = 剩余的秒数;

countDown(end_time) { 
if (end_time == null) return; 
let nowTime = moment() .locale('zh-cn') .format('YYYY-MM-DD HH:mm:ss'); //当前时间
let endTime = moment(end_time) .locale('zh-cn') .format('YYYY-MM-DD HH:mm:ss'); 
return moment(endTime).diff(moment(nowTime), 'seconds'); //剩余可倒计时的秒数 
},

到此这篇关于vue中使用moment设置倒计时的方法的文章就介绍到这了,更多相关vue moment设置倒计时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文