检查日期是否超过 6 个月

Check if date is greater than 6 months past

提问人:Cookies 提问时间:11/8/2023 最后编辑:jsejcksnCookies 更新时间:11/8/2023 访问量:80

问:

我正在尝试检查日期是否超过 6 个月。例如,今天是 2023 年 11 月 7 日。因此,如果我通过了 2023 年 5 月 10 日的日期,我预计它只会返回 5 个月,因为它还没有 6 个月,但它目前正在返回 6 个月。有没有更好的方法来实现这一目标?

export const diffInMonths = (date: string) => {
   const dateDifference = parseInt(
     DateTime.fromISO(date).diff(DateTime.now(), ['months']).toFormat('M')
   );

   return dateDifference;
};

//this currently returns -6, when in actuality it should be -5 because it has not been 6 months    yet
console.log(diffInMonths('2023-05-10T20:15:00Z'));
JavaScript ReactJS 日期时间 Luxon

评论

0赞 Pointy 11/8/2023
您可以创建一个新的 Date 实例,然后用于设置过去的 6 个月,然后查看正在测试的日期是否小于该日期。.setMonth()
0赞 Ross Allen 11/8/2023
这是在使用 Luxon 吗?
2赞 Ross Allen 11/8/2023
距离 2023-05-10(写于 2023-11-07)已经过去了 181 天。你想知道“一年中的月份是 6 年前吗?您提供的日期相隔 181 天,即 6 个月。差异:timeanddate.com/date/...
2赞 Hovercraft Full Of Eels 11/8/2023
请注意,您选择的“正确”答案抄袭了 ChatGPT,我会以极度怀疑的态度看待其内容。
1赞 jsejcksn 11/8/2023
^@Cookies 用户最近有剽窃 AI 生成内容的历史。如果你看一下答案,你就可以识别出模式。

答:

0赞 Danyil 11/8/2023 #1

您面临的问题是由四舍五入到最接近的整月引起的。如果您尝试先转换为天数,请计算差值,然后将其除以得到月份应该效果更好。不要忘记在转换回月份后执行 Math.floor()。

祝你好运!