首页 > 解决方案 > 缺少 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

标签: javascriptnode.jsreactjsdate-fns

解决方案


一整天的差异

仅获得全天的原因是,这就是 API 根据DifferenceInDays的官方文档的工作方式

日历日的差异

您正在寻找的是日历天数的差异,这可以在differenceInCalendarDaysdate-fns的文档中看到本机支持。

水下这个 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")
  )
);

推荐阅读