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-cli 创建模板项目
Nov 19 Vue.js
Vue $attrs &amp; inheritAttr实现button禁用效果案例
Dec 07 Vue.js
vue使用require.context实现动态注册路由
Dec 25 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
详解Vue的options
May 15 Vue.js
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
vue3使用vuedraggable实现拖拽功能
Apr 06 Vue.js
vue实现拖拽交换位置
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
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
利用Psyco提升Python运行速度
2014/12/24 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Django框架模板的使用方法示例
2019/05/25 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
python config文件的读写操作示例
2019/09/27 Python
postman和python mock测试过程图解
2020/02/22 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
经典演讲稿范文
2013/12/30 职场文书
土建专业毕业生自荐书
2014/07/04 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL