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 相关文章推荐
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
Vue实现点击当前行变色
Dec 14 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
vue中如何添加百度统计代码
Dec 19 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
Vue全局事件总线你了解吗
Feb 24 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
德生9700DX电路分析
2021/03/02 无线电
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
用cssText批量修改样式
2009/08/29 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
jQuery中get()方法用法实例
2014/12/27 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
pyqt4教程之widget使用示例分享
2014/03/07 Python
对于Python的框架中一些会话程序的管理
2015/04/20 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
英国在线药房:Express Chemist
2019/03/28 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
装修协议书范本
2014/04/21 职场文书
一分钟演讲稿
2014/04/30 职场文书
精神文明建设标语
2014/06/16 职场文书
会计学专业求职信
2014/07/17 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python