vue实现倒计时功能


Posted in Vue.js onMarch 24, 2021

通过父组件传入的结束时间减去当前日期得到剩余时间

1.子组件部分

<div class="itemend">
 <p class="itemss">倒计时<span>{{day}}</span>天<span>{{hour}}</span>时<span>{{minute}}</span>分<span>{{second}}</span>秒</p>
</div>

代码:

data() {
 return {
 day: "", //天
 hour: "", //时
 minute: "", //分
 second: "", //秒
 flag: false,
 };
 },
 mounted() {
 let time = setInterval(() => {
 if (this.flag == true) {
 clearInterval(time);
 }
 this.timeDown();
 }, 500);
 },
 props: {
 endTime: {
 type: String,
 },
 },
 methods: {
 timeDown() {
 const endTime = new Date(this.endTime);
 const nowTime = new Date();
 let leftTime = parseInt((endTime.getTime() - nowTime.getTime()) / 1000);
 let d = parseInt(leftTime / (24 * 60 * 60));
 let h = this.formate(parseInt((leftTime / (60 * 60)) % 24));
 let m = this.formate(parseInt((leftTime / 60) % 60));
 let s = this.formate(parseInt(leftTime % 60));
 if (leftTime <= 0) {
 this.flag = true;
 this.$emit("time-end");
 }
 this.day = d; //天
 this.hour = h; //时
 this.minute = m; //分
 this.second = s; //秒
 },
 formate(time) {
 if (time >= 10) {
 return time;
 } else {
 return `0${time}`;
 }
 },
}

2.父组件引用

<template>
 <div>
 <Times :endTime='timeEnd'></Times>
 </div> 
</template>
 
import Times from "@/components/time";
export default {
 name: "Home",
 data() {
 return {
 timeEnd: "2021-3-30 9:50" //结束时间(苹果手机无法解析"-" 可以将格式改为2021/3/30)
 },
  
 components: {
 Times,
 },
};

 

Vue.js 相关文章推荐
vue使用vant中的checkbox实现全选功能
Nov 17 Vue.js
vue 插槽简介及使用示例
Nov 19 Vue.js
vue中如何自定义右键菜单详解
Dec 08 Vue.js
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
vue中使用echarts的示例
Jan 03 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
vue动态绑定style样式
Apr 20 Vue.js
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 #Vue.js
使用Vue.js和MJML创建响应式电子邮件
vue+flask实现视频合成功能(拖拽上传)
Mar 04 #Vue.js
vue打开新窗口并实现传参的图文实例
Mar 04 #Vue.js
Vue-router编程式导航的两种实现代码
Mar 04 #Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 #Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 #Vue.js
You might like
php图片添加水印例子
2016/07/20 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
python实现简单点对点(p2p)聊天
2017/09/13 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
意大利奢侈品网站:Italist
2016/08/23 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
外包公司软件测试工程师
2014/11/01 面试题
省级优秀班集体申报材料
2014/05/25 职场文书
投标诚信承诺书
2014/05/26 职场文书
三八妇女节标语
2014/10/09 职场文书
2014年内勤工作总结
2014/11/24 职场文书
年终工作总结范文
2019/06/20 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python