【问题标题】:differences in days lack of 1 days (javascript)?缺少 1 天的天数差异(javascript)?
【发布时间】:2020-11-29 04:37:57
【问题描述】:

我正在使用 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 天。这是2 days and 21 hours。因此 date-fns 返回2
  • @HarunYilmaz 如何忽略时间?我只想要天差

标签: javascript node.js reactjs date-fns


【解决方案1】:

全天差异

只获得一整天的原因是,这就是 API 按照DifferenceInDays 的官方文档的工作方式

日历日的差异

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

在水下,这个 API 只是剥夺了时间,这似乎是您正在寻找的。​​p>

示例

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")
  )
);

【讨论】:

    【解决方案2】:

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

    所以,如果您将最终日期时间更改为new Date("2020-08-12T09:30:20.914Z")

    它将显示 3 天。

    【讨论】:

      【解决方案3】:

      如果您只想获取日期,请删除时区之前的时间

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-18
        • 2015-12-30
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多