当前位置: 首页 > 知识库问答 >
问题:

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

伏默
2023-03-14

我在用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个答案

蔺山
2023-03-14

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

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

会显示3天。

郦祯
2023-03-14

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

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

// returns 3
谷梁弘深
2023-03-14

只获得完整天数的原因是,这是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")
  )
);
 类似资料:
  • 问题内容: 我试图计算两个日期之间的差额,但我注意到一件事。仅计算日期时,间隔中包括夏令时的开始,因此结果将缩短1天。 为了获得准确的结果,还必须考虑小时数。 例如: 输出: 有人有更好的解决方案吗? 问题答案: 哦,是的,有更好的解决方案! 停止使用过时的类,并使用Java 8及更高版本(教程)中内置的java.time API的功能 。具体而言,,,和类。

  • 问题内容: 我正在使用以下代码获取当前日期(格式为12/31/1999,即mm / dd / yyyy): 我还有另一个日期格式为:2019-08-25(即yyyy / mm / dd), 所以我想找出日期之间的天数差异,如何找到天数上的差异? (换句话说,我想找到当前日期-yyyy / mm / dd格式化日期之间的差异) 问题答案: 并不是真正可靠的方法,最好使用JodaTime 这是一个近似

  • 问题内容: 有没有一种快速的方法来计算php中的日期差异?例如: 然后进行计算,$ date2减去$ date1 我读了php.net文档,但是没有运气。有快速的方法吗? 问题答案: strtotime会将您的日期字符串转换为Unix时间戳。(自UNIX时代以来的秒数。

  • 我必须找出两个日期在月和天之间的区别。我尝试了谷歌,但我只发现了月份和日期的差异。 例如:2013年4月1日和2013年5月7日,那么结果应该是1个月6天。 我希望代码只使用Java6提供的api。推荐但不喜欢Joda Time和其他。谢谢你的帮助。

  • 问题内容: 在我的代码中,日期之间的差异是错误的,因为它应该是38天而不是8天。我该如何解决? 问题答案: 问题出在变量中。月以Capital M表示。 尝试更改为: 有关更多信息,请参见此javadoc。 编辑: 这是代码,如果您想以注释的方式打印差异: 希望对您有所帮助!

  • 如何减少天数-1,例如更改为

  • 问题内容: 我想得到两个Java Date对象之间的区别。我使用了Joda-Time库。但是问题是我得到的天数差异大于实际的天数差异。 这是我的代码段: 这是我的输出: 在这里,为什么将“ 06/22/2010”设为1月22日?有人遇到类似的问题吗? 帮我朋友..提前感谢.. 问题答案: 月份是MM 在您的情况下: DateFormat formatter = new SimpleDateForm

  • 所以我在尝试这样做时遇到了一些问题,我已经尝试过这个代码: 我知道为什么这不是我想要的,因为我需要的是我在数据库中插入的第一个日期,我希望它是(CURRENTDATE-TXTDATE==剩余天数)