小程序倒计时

需求:根据创建时间来判断当前时间到截止日期还有多少天

/**
* 时间和期限关系处理函数
* @param {Number} range 限制截止的天数
* @param {string} creatTime 创建时间 2020-01-01 13:10:11
* @returns {void}
*/
timeFun(range = 7, creatTime) {const that = thiscreatTime = creatTime.replace(new RegExp('-','g'), '/')// ios兼容NAN问题 不支持2020-1-2 只支持2020/1/2let nowtime = new Date().getTime()let i = new Date(creatTime).getTime()i+=range * 24 * 60 * 60*1000let overtime = new Date(i).getTime()let differenceDay = overtime-nowtime// 大于截止日期返回if(differenceDay < 0){this.timerShow = falsereturn false;}else{this.timerShow = true}let day = Math.floor(differenceDay / 1000 / 60 / 60 / 24);//计算整数天数let hour = Math.floor(differenceDay / 1000 / 60 / 60 % 24);//计算整数小时数let min = Math.floor(differenceDay / 1000 / 60 % 60);//计算整数分let afterMin =  Math.floor(differenceDay / 1000 % 60);//取得算出分后剩余的秒数console.log(differenceDay,day,hour,min,afterMin)that.timeData.day = daythat.timeData.hour = hourthat.timeData.min = minthat.timeData.afterMin = afterMinthat.myInterval = setInterval(this.timing,1000)
},
// 递减逻辑
timing(){const that = thisthat.timeData.afterMin--if(that.timeData.afterMin < 0){--that.timeData.minif(that.timeData.min < 0){--that.timeData.hourif(that.timeData.hour < 0){--that.timeData.dayif(that.timeData.day == 0) {that.timerShow = falseclearInterval(that.myInterval)// 关闭之后的逻辑// ....}that.timeData.hour = 0// that.$set(that.timeData,'hour',0)}that.timeData.min = 59// that.$set(that.timeData,'min',59)}that.timeData.afterMin = 59// that.$set(that.timeData,'afterMin',59)}
},

每次递减的时候计算时间感觉会影响性能 所以就把计算的时间的逻辑放到了外边,每次递减对应的数值就行而不是每次在做递减逻辑的时候计算时间

小程序隐藏的时候可以把这个定时器清除掉然后把都归为0,再显示的时候再调用方法计算

uniapp小程序倒计时相关推荐

  1. uniapp(小程序) 配置 海康威视-萤石监控(直播替代方案) 踩坑与解决方法

    uniapp(小程序) 配置 海康威视-萤石监控(直播替代方案) 踩坑与解决方法 因为公司业务需求需要获取监控的摄像头,萤石是给出了几种方案去实现. 直播接入:萤石开放平台API文档 小程序接入:萤石 ...

  2. uni-app小程序实现录音功能,uniapp实现录音功能并上传java,uniapp简单实现录音功能

    前言 [简单的录音例子,复制过去就可用] 使用了uni组件和uView组件: uniapp小程序授权录音并录制后保存到java后端. 效果图 uniapp实现 直接复制过去粘贴到.vue文件即可测试: ...

  3. uniapp小程序迁移到TS

    uniapp小程序迁移到TS 我一直在做的小程序就是 山科小站 也已经做了两年了,目前是用uniapp构建的,在这期间也重构好几次了,这次在鹅厂实习感觉受益良多,这又得来一次很大的重构,虽然小程序功能 ...

  4. uni-app 小程序多图上传

    uni-app 小程序多图上传: 官方提示说,App支持多文件上传,微信小程序只支持单文件上传,传多个文件需要反复调用本API.所以跨端的写法就是循环调用本API 步骤: //1.首先通过 uni.c ...

  5. uniapp小程序发布经验

    一.概述 uniapp已经开发好了,有需求转为小程序发布,一般上转为微信小程序. 这里以微信小程序为例. 二.转化方法 1.打开HBuilder X开发工具: 2.打开uniapp代码: 3.点击菜单 ...

  6. uniapp小程序开发设置系统状态栏高度、全屏背景图设置

    效果: uniapp小程序开发设置系统状态栏高度/全屏背景图设置 <view class="login"><view class="status_bar ...

  7. uni-app小程序分享

    uni-app小程序分享(全局) 在common文件下share.js export default {data() {return {share: {// 转发的标题 (默认标题)title: '' ...

  8. 【uniapp小程序】request发起请求

    这里写目录标题 写在前面 微信小程序和uniapp小程序区别

  9. uniapp 小程序实现 RSA 加密

    uniapp 小程序实现 RSA 加密 引言 创建并使用 jsencrypt 进行 RSA 加密 创建 rsa 文件 在需要的地方引用 注意 引言 前端开发时,有时候不可避免会使用到加密,本人在这次的 ...

  10. uniapp小程序运行正常,app运行报cid unmatched at view.umd.min.js

    uniapp小程序运行正常,app运行报cid unmatched at view.umd.min.js 阐述 uniapp 运行小程序正常,但是调试App.有时候就会报一大堆错误,是因为小程序编辑器 ...

最新文章

  1. jquery easy ui 简单字段选择搜索实现
  2. OpenLDAP实战指南上市发售
  3. Trie的C++实现及HDU1251,hdu1671
  4. Linux基础配置和查看命令帮助
  5. 隐马尔科夫模型HMM自学 (2)
  6. TortoiseGit安装过程
  7. 阿里云OSS Multipart Upload上传实例
  8. 考虑玩家移动速度的射击
  9. UVA152 Tree's a Crowd【暴力+最值】
  10. 关于MATLAB实现的数字信号处理(二)
  11. C# 控件BackColor = Color.Transparent没有透明的原因
  12. BXP无盘Windows XP网吧系统的好处(转)
  13. 【语义分割项目实战】一种特殊的数据增强方式:copy-paste实战复现
  14. Ubuntu系统下python编程入门
  15. CobaltStrike木马免杀代码篇之python反序列化分离免杀(一)
  16. vue使用Moment插件格式化时间
  17. Mtk Sensor 驱动框架变更简要分析
  18. 一文回顾 Java 入门知识(上)
  19. pandas的基本功能与常用的数学统计方法
  20. 安全测试——AppScan

热门文章

  1. 2021年计算机保研总结(北师大+山大+大连理工+东北大学+信工所+哈工大+北航)
  2. python全排列abc_abc的全排列
  3. 《机器学习》周志华第三章课后习题
  4. 百度网盘不限速下载软件 Pan Download下载不了,创建文件失败的解决办法
  5. Latex希腊字母对照表
  6. 随机地图生成工具 fastMapper
  7. 数学知识整理:布朗运动与伊藤引理 (Ito‘s lemma)
  8. 人工智能系列 之机器学习DBSCAN聚类算法
  9. 不限速度盘下载神器Pandownload作者被抓,大量下载脚本已宣布停更
  10. python 网盘多帐号_教你怎么拥有(很多)百度网盘2T账号