日历天数差异,除了date-fns/moment,还有什么解决方案?

4

我想计算两个日期之间的天数差异,例如 7月17日和7月19日之间的差距为2天。目前我正在使用date-fns库,并利用differenceInCalendarDays方法,但很遗憾它不准确,对于7月17日和7月19日之间的日期差异返回1天。 我创建了一个repl来演示该方法不准确的功能。我也尝试使用momentjs并得到相同的结果。

repl - https://repl.it/@yazmnh87/CumbersomeLightsalmonTheories#index.js

gitHub issue date-fns - https://github.com/date-fns/date-fns/issues/1877

我想到的一个解决办法是在保存到数据库之前将时间设置为中午或其他一些固定时间,以便获得一致的结果。非常感谢您提供任何有助于简化此操作的帮助。

1个回答

2

不确定date-fns可能存在什么问题。

但是您可以在不使用库的情况下实现此目标:

 const difference = new Date("Sun Jul 19 2020 15:13:20 GMT-0600 (Mountain Daylight Time)") - new Date("Fri Jul 17 2020 21:15:40 GMT-0600 (Mountain Daylight Time)")
// the difference is in miliseconds.
// divide it by miliseconds in a day to get the difference in days
const differenceInDays = Math.round(Math.abs((difference) / (24 * 60 * 60 * 1000)))
 
console.log(differenceInDays)


谢谢,我会尝试一下 :) - yazmnh87
这是“differenceInDays”,不是“differenceInCalendarDays”,无法工作,甚至比date-fns版本更糟糕。 - Pencilcheck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接