前端有没有算时间差的包?

类似于倒计时:
比如 1天 0小时 15分 前

 2天3小时30分前

moment包🈶️fromnow的功能

但是好像只能精确到一个单位,无法同时显示天 小时 分钟

有没有这样的包?

一定要是中文的

分钟可以不精确到

谢谢大佬

阅读 2k
1 个回答

按着思路来就可以了,先计算出两个时间之前相差的秒数,假设 from 的时间戳为 1628335028,to 的时间戳为 1629536684

先用 from - to = 1201656 , 即两个时间相差了 1201656 秒。

一天有 606024=86400 秒,那现在用 1201656/86400 ,并向下取余 Math.floor(1201656/86400)=13,即得出有 13 天。

现在用相差的秒数,减去 13 天的秒数,就获得了剩下的秒 1201656-13*86400=78456,还有 78456 秒,已知每小时是 60*60=3600秒,然后用同样的手法计算 Math.floor(78456/3600)=21,现在得出有 21 个小时。

然后来计算分钟,用先前减去天后剩下的秒数 78456-21*3600=2856,得到 2856,现在要计算分钟,已知每分钟是 60 秒,那就如法炮制, Math.floor(2856/60)=47,得到:分钟 47

然后计算秒数,这个就比较简单了,用刚刚剩下的 2856-47*60=36,即得到秒数 36 秒。

那么现在就算出来了 from 到 to 之间差了:13 天 21 小时 47 分 36 秒

为什么要用 Math.floor 简单的说当第一次 1201656/86400 ≈ 13.9080 天,因为我们是要用后面的小数来知道剩下有多少小时、分钟、秒,所以就向下取整,拿 13 ,然后再计算后面的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题