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实现下载文件流完整前后端代码
Nov 17 Vue.js
vue在图片上传的时候压缩图片
Nov 18 Vue.js
用vue设计一个日历表
Dec 03 Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
vue+echarts实现多条折线图
Mar 21 Vue.js
Axios代理配置及封装响应拦截处理方式
Apr 07 Vue.js
详解Vue3使用axios的配置教程
Apr 29 Vue.js
vue router 动态路由清除方式
May 25 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
Zend的Registry机制的使用说明
2013/05/02 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
浅谈PHP的反射API
2017/02/26 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
JS 统计时间
2021/03/09 Javascript
js Flash插入函数免激活代码
2009/03/31 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
Python数据结构之翻转链表
2017/02/25 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
班组长安全生产职责
2013/12/16 职场文书
土木工程专业个人求职信
2013/12/30 职场文书
室内趣味活动方案
2014/08/24 职场文书
教师自我剖析材料
2014/09/29 职场文书
2015年中秋寄语
2015/07/31 职场文书
乔迁新居祝福语
2019/11/04 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
SQL注入详解及防范方法
2021/12/06 MySQL
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers