提问者:小点点

天数差异缺少%1天(javascript)?


我在用date-fns来计算日差

import differenceInDays from "date-fns/differenceInDays";

console.log(
  differenceInDays(
    new Date("2020-08-12T07:22:03.498Z"),
    new Date("2020-08-09T09:30:20.914Z")
  )
);

答案是2,我想是3,因为12-9是3。

怎么了? https://codesandbox.io/s/date-fns-v2-pzlex?file=/src/index.js:0-299


共3个答案

匿名用户

只获得完整天数的原因是,这是API根据不同天数的官方文档工作的方式

您要查找的是日历天数中的差异,date-fns本机支持该差异,这可以在有关DifferenceInCalendarDays的文档中看到。

水下这个API只是剥离时间,这似乎是您正在寻找的。

import differenceInCalendarDays from "date-fns/differenceInCalendarDays";

console.log(
  differenceInCalendarDays(
    new Date("2020-08-12T07:22:03.498Z"),
    new Date("2020-08-09T09:30:20.914Z")
  )
);

匿名用户

如果只想获取日期,请删除时间,直到时区为止

console.log(
  differenceInDays(
    new Date("2020-08-12"),
    new Date("2020-08-09")
  )
);

// returns 3

匿名用户

它应该显示给定日期之间的完整天数。 (整整3天你缺了几个小时)

因此,如果将最终日期时间更改为新日期(“2020-08-12t09:30:20.914Z”)

会显示3天。