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项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
vue+vant 上传图片需要注意的地方
Jan 03 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
vue实现拖拽交换位置
Apr 07 Vue.js
vue实现Toast组件轻提示
Apr 10 Vue.js
vue的项目如何打包上线
Apr 13 Vue.js
Vue操作Storage本地化存储
Apr 29 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守护进程类
2015/12/30 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
JQuery toggle使用分析
2009/11/16 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
SQLite3中文编码 Python的实现
2017/01/11 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
印度在线购物网站:Paytmmall
2019/07/24 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
医护人员英文求职信范文
2013/11/26 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
毕业生就业协议书
2014/04/11 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
Python如何用re模块实现简易tokenizer
2022/05/02 Python