离线下载
PDF版 ePub版

极客学院团队出品 · 更新于 2018-07-22 01:00:48

计算两个日期中间的天数

问题

你需要找出两个日期间隔了几年,几个月,几天,几个小时,几分钟,几秒。

解决方案

利用 JavaScript 的日期计算函数 getTime() 。它提供了从 1970 年 1 月 1 日开始经过了多少毫秒。

DAY = 1000 * 60 * 60  * 24

d1 = new Date('02/01/2011')
d2 = new Date('02/06/2011')

days_passed = Math.round((d2.getTime() - d1.getTime()) / DAY)

讨论

使用毫秒,使计算时间跨度更容易,以避免日期的溢出错误。所以我们首先计算一天有多少毫秒。然后,给出了 2 个不同的日期,只须知道在 2 个日期之间的毫秒数,然后除以一天的毫秒数,这将得到 2 个不同的日期之间的天数。

如果你想计算出 2 个日期对象的小时数,你可以用毫秒的时间间隔除以一个小时有多少毫秒来得到。同样的可以得到几分钟和几秒。

HOUR = 1000 * 60 * 60

d1 = new Date('02/01/2011 02:20')
d2 = new Date('02/06/2011 05:20')

hour_passed = Math.round((d2.getTime() - d1.getTime()) / HOUR)