一、实现代码

函数封装:

/* countdown.js */
/*** 输入一个时间,自动计算与当前时间的时间差,可返回剩余天数、小时数、分钟数、秒数、毫秒数,或全部最佳时间集合。* @param {String} planTimeStr 设定需计算的时间(格式:2021-09-23T18:32:00)* @param {String} type 需要计算得到的数据。(type = "a" | "d" | "h" | "m" | "s" | "ms")* @returns {Object} 返回对应的数据*/
export default function countdown(planTimeStr, type = "a") {const planTime = new Date(planTimeStr).getTime();const nowTime = new Date().getTime();let diffTime, isExpire, result;isExpire = nowTime > planTime ? true : false;diffTime = isExpire ? nowTime - planTime : planTime - nowTime;switch (type) {case "d": {result = { d: floor(diffTime / 86400000), isExpire };break;}case "h": {result = { h: floor(diffTime / 3600000), isExpire };break;}case "m": {result = { m: floor(diffTime / 60000), isExpire };break;}case "s": {result = { s: floor(diffTime / 1000), isExpire };break;}case "ms": {result = { ms: diffTime, isExpire };break;}case "a": {}default: {let d, h, m, s, ms;d = floor(diffTime / 86400000);h = floor((diffTime - d * 86400000) / 3600000);m = floor((diffTime - d * 86400000 - h * 3600000) / 60000);s = floor((diffTime - d * 86400000 - h * 3600000 - m * 60000) / 1000);ms = floor(diffTime - d * 86400000 - h * 3600000 - m * 60000 - s * 1000);result = {d,h,m,s,ms,isExpire,};}}return result;
}function floor(num) {return Math.floor(num);
}

二、原理分析

实现原理:通过将用户指定时间的时间戳和当前时间的时间戳相减后,将结果按照毫秒的换算比例转换即可。

描述方法:

  1. new Date()「方法」获得当前时间。
  2. getTime() 「方法」将日期时间转换成时间戳。
  3. Math.floor()「方法」将指定数值向下取整。

最后,如果您有更好的方法,欢迎在留言区中分享;或者实际操作中遇到什么问题均可留言或者私信我,感谢您的观看!

(5) 日期倒计时计算 countdown相关推荐

  1. vue3封装时间计算-日期倒计时组件——还有XX天 第XX天

    vue3封装时间计算-日期倒计时组件--还有XX天 & 第XX天 & 年月日时分秒星期几方法的封装 & setup语法糖完整用法之reactive, ref, onMounte ...

  2. xe-utils 计算:年份、月份、周、天、每月天数、月的第几周、年的第几天、年的第几周、日期倒计时、日期至今差距计算、任意日期格式化

    使用 xe-utils 可以非常简单的处理任意日期之间的转换: 时区转换.年份.月份.周.天.每月天数.月的第几周.年的第几天.年的第几周.日期倒计时.任意日期格式化 查看 Github js日期转换 ...

  3. Android 日期倒计时

    实现抢票或者秒杀之类的倒计时效果,可更改倒计时格式,需求:1天5小时8分钟22秒这种,完美解决手机息屏计时不准的问题(用wekLock) 本文章借鉴于Android定时器-做天数时间倒计时 wakeL ...

  4. 手机日期倒计时工具有哪些?

    在日常的生活和工作中,我们经常会遇到一些重要的日子,比如说重要的会议.生日.纪念日.考试等等.这些日子对于我们来说是特殊且重要的,所以很多人都希望能够提前做好准备,避免错过或忘记.那么有没有一款可以帮 ...

  5. vue,javascript实现页面日期倒计时功能

    日期倒计时在日常项目中还是比较常用的,活动.自动完成时间,拼团等场景比较常见,所以把自己项目中用到分享一下,具体看下方源码: 代码比较简化,方便大家参考使用: /*** 日期倒计时* @param d ...

  6. python datetime计算时间差_Python中关于日期的计算总结

    1.获取当前时间的两种方法: 代码如下: 2.获取上个月最后一天的日期(本月的第一天减去1天) 代码如下: 3.获取时间差(时间差单位为秒,常用于计算程序运行的时间) 代码如下: 4.计算当前时间向后 ...

  7. localdate计算相差天数_还在苦恼MySQL如何根据日期精确计算年龄?看这一篇,就够了

    转译自 How To Calculate Age From Date Of Birth In MySQL- Querychat. 中文转载,请注明出处. 使用SQL语句计算年龄,在事务处理和日期计算中 ...

  8. java中日期计算时间差,java中依据,两个日期,计算时间差

    java中根据,两个日期,计算时间差. 分别获取两个时间的毫秒数Date.getTime(),相减,得到的值/1000为秒数,/60*1000为分钟数,/60*60*1000为小时数. /** * 计 ...

  9. vant toast loading 倒计时_日期倒计时软件哪个好 苹果日期倒计时软件推荐

    日期倒计时软件哪个好,相信大家也是经常会查看日期,来保证一些重要的事情能够按时进行,那么哪一款日期倒计时软件比较好用,能够提醒用户们日期将至呢.这里就为大家推荐几款. 日期倒计时软件哪个好 1.Day ...

最新文章

  1. android2.2编译,Android NDK编译Box2D_V2.2
  2. GPSD架构介绍及交叉编译和使用
  3. Elasticsearch之配置详解
  4. Elasticsearch--高级-映射mapping_添加行的字段映射---全文检索引擎ElasticSearch工作笔记018
  5. uni-app两种方法解决跨域问题【已验证】
  6. SET NOCOUNT
  7. ideal_lp.m、freqz_m.m、freqz_m2.m
  8. 激光雷达原理及发展现状
  9. 拼多多软件测试开发,拼多多事件对我们业务测试的启发
  10. P卡、worldfirst、连连跨境电商收款哪家好?
  11. torch.Generator 随机数生成器
  12. 拥抱趋势,蓄能跃迁——2018慧点科技企业协同及治理创新论坛圆满举行
  13. 【初学python】实例七:七段数码管绘制
  14. SPICE、IBIS等几种PCB信号完整性分析模型分析
  15. remote couldn‘t create file: Read-only file system (remount failed)解决方法
  16. 常见网络摄像机(摄像头)的端口及RTSP地址
  17. 【Postgresql】pg_show_plans插件
  18. csgo跑图文件_[CSGO]Neko社区:跑图服务器简易使用指南
  19. Linux解决syntax error near unexpected token`问题
  20. 超导磁通量子计算机,超导磁通量子比特低频磁通噪声的测量

热门文章

  1. 【微机原理与接口技术】--第六章--基本输入输出接口技术
  2. 炸房”网游外挂的刑事责任辨析
  3. 基于layui + springboot +shiro+mybatisPlus仓库管理系统
  4. 云呐医院行业固定资产管理系统软件
  5. 大厂偏爱的Agent技术究竟是个啥
  6. MySQL-4多表操作
  7. 会议OA之待开会议所有会议
  8. windows系统下定时关闭程序
  9. 如何使用Arduino ESP32将数据存储到MicroSD(软SPI和硬SPI)
  10. java基础-CAS、synchronized和AQS的理解