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

 更新时间:2024年02月06日 10:37:39   作者:一室易安  
这篇文章给大家介绍了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设置倒计时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Ant Design Vue 添加区分中英文的长度校验功能

    Ant Design Vue 添加区分中英文的长度校验功能

    这篇文章主要介绍了Ant Design Vue 添加区分中英文的长度校验功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下功能,
    2020-01-01
  • Vue3使用富文本框(wangeditor)的方法总结

    Vue3使用富文本框(wangeditor)的方法总结

    项目中用到了富文本,选来选去选择了wangeditor,下面这篇文章主要给大家介绍了关于Vue3使用富文本框(wangeditor)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • VUE2.0中Jsonp的使用方法

    VUE2.0中Jsonp的使用方法

    使用JSONP主要是目的通过动态创建Script,动态拼接url,进而抓取数据,实现跨域。这篇文章主要介绍了VUE2.0中Jsonp的使用方法(前端),需要的朋友可以参考下
    2018-05-05
  • vue实现文字加密功能

    vue实现文字加密功能

    这篇文章主要为大家详细介绍了vue实现文字加密功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • vue 函数调用加括号与不加括号的区别

    vue 函数调用加括号与不加括号的区别

    这篇文章主要介绍了vue 函数调用加括号与不加括号的区别,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2020-10-10
  • Pinia介绍及工作原理解析

    Pinia介绍及工作原理解析

    这篇文章主要为大家介绍了Pinia介绍及工作原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 关于vue.js v-bind 的一些理解和思考

    关于vue.js v-bind 的一些理解和思考

    本篇文章主要介绍了关于vue.js v-bind 的一些理解和思考,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • vue全局指令文件 directives详解

    vue全局指令文件 directives详解

    全局指令是Vue.js中的一种自定义指令,可以在整个应用中重复使用,通过Vue.directive方法定义,可以在组件内部直接使用,指令有多个生命周期钩子,可以接收参数和修饰符,提高代码复用性和可维护性,本文介绍vue全局指令文件directives,感兴趣的朋友一起看看吧
    2025-02-02
  • Vue组件实例间的直接访问实现代码

    Vue组件实例间的直接访问实现代码

    在组件实例中,Vue提供了相应的属性,包括$parent、$children、$refs和$root,这些属性都挂载在组件的this上。本文将详细介绍Vue组件实例间的直接访问,需要的朋友可以参考下
    2017-08-08
  • 详解Vue中如何实现图片处理与滤镜效果

    详解Vue中如何实现图片处理与滤镜效果

    Vue.js作为一个灵活的JavaScript框架,可以很容易地与图像处理库和滤镜效果库集成,以实现各种图像处理需求,下面我们就来学习一下vue是如何实现图片处理与滤镜效果的吧
    2023-10-10

最新评论