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 Elenent实现表格相同数据列合并
Nov 30 Vue.js
Vue实现简单购物车功能
Dec 13 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
vue动态设置路由权限的主要思路
Jan 13 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
详解Vue router路由
Nov 20 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
vue+iview实现手机号分段输入框
Mar 25 Vue.js
Axios代理配置及封装响应拦截处理方式
Apr 07 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
php5中类的学习
2008/03/28 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
python发腾讯微博代码分享
2014/01/10 Python
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
python实现画圆功能
2018/01/25 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
python实现猜拳游戏
2020/03/04 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
大学生毕业的自我评价分享
2014/01/02 职场文书
安全检查与奖惩制度
2014/01/23 职场文书
员工团队活动方案
2014/08/28 职场文书
文体活动总结
2015/02/04 职场文书
小学远程教育工作总结
2015/08/13 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
Oracle中update和select 关联操作
2022/01/18 Oracle
Python实现双向链表
2022/05/25 Python