Vue实现可自定义时间倒计时功能组件
一,创建countDown.vue(倒计时组件)
let time = parseInt(new Date().getTime() / 1000) + '';//获取10位时间戳
let time = new Date().getTime();//获取13位的时间戳
使用说明:
1)endTime是一个时间戳,而且是字符串数据类型,需要处理下
let endTime = new Date("2022/04/18 08:00:20").getTime() / 1000 + ' '
2)endText是倒计时结束显示的内容
<template> <span :endTime="endTime" :endText="endText"> <slot>{{content}}</slot> </span> </template> <script> export default { data(){ return { content: '', } }, props:{//接收父组件的数据 endTime:{type:String,default:''}, endText:{type:String,default:'活动已结束'}, }, watch: {//监听时间的变化 endTime() { this.countdowm(this.endTime) } }, mounted () { this.countdowm(this.endTime) }, methods: { countdowm(timestamp){ let self = this; let timer = setInterval(function(){ let nowTime = new Date(); let endTime = new Date(timestamp * 1000); let t = endTime.getTime() - nowTime.getTime(); if(t>0){ let day = Math.floor(t/86400000); let hour=Math.floor((t/3600000)%24); let min=Math.floor((t/60000)%60); let sec=Math.floor((t/1000)%60); hour = hour < 10 ? "0" + hour : hour; min = min < 10 ? "0" + min : min; sec = sec < 10 ? "0" + sec : sec; let format = ''; if(day > 0){ format = `${day}天${hour}小时${min}分${sec}秒`; } if(day <= 0 && hour > 0 ){ format = `${hour}小时${min}分${sec}秒`; } if(day <= 0 && hour <= 0){ format =`${min}分${sec}秒`; } self.content = format; }else{ clearInterval(timer); self.content = self.endText; } },1000); } } } </script>
二,父组件使用倒计时组件
<template> <count-down :endTime="endTime" :endText="endText " /> </template> <script> import countDown from '@/components/countDown'//引入路径,可更改 export default { data() { return{ endTime:new Date("2022/04/18 08:00:20").getTime() / 1000 + ' ', // console.log(endTime)=>得到毫秒 1658030420 可在方法里面放入后台数据,new Date('放后台数据').getTime() / 1000 + ' ',但要记得调用方法 endText:'', } }, components: { countDown }, } </script>
滴水可以石穿! 学而不思则罔,思而不学则殆!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)