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中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
Vue中强制组件重新渲染的正确方法
Jan 03 Vue.js
vue-video-player 断点续播的实现
Feb 01 Vue.js
vue3中的组件间通信
Mar 31 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 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代码技巧的小结
2013/06/02 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
jQuery截取指定长度字符串代码
2014/08/21 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
python socket 超时设置 errno 10054
2014/07/01 Python
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
python实现ip地址的包含关系判断
2020/02/07 Python
使用python实现多维数据降维操作
2020/02/24 Python
python利用opencv保存、播放视频
2020/11/02 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
pandas按条件筛选数据的实现
2021/02/20 Python
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
学生处主任岗位职责
2013/12/01 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
黄金搭档广告词
2014/03/21 职场文书
加油口号大全
2014/06/13 职场文书
党员剖析材料范文
2014/09/30 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL