检查给定日期是否在最近3周内



我有一个样本日期:

const date = '10-03-2022';

我需要检查这个日期是否超过3周。或者换一种说法——我需要检查这个日期是否在过去3周或更长时间内。

我试着用date-fns,但这不是我所期望的结果。

import { formatDistance, subWeeks } from 'date-fns'
formatDistance(subWeeks(new Date(), 3), date)

老实说,我根本不知道如何处理这样的问题。这就是为什么我想在这里向你寻求帮助。谢谢

您可以使用isAftersubWeeks进行比较。即使日期在now的将来,这也将返回true。

或者,您可以使用isWithinInterval来测试日期是否在nownow之前三周之间。(未包含在可用的cdn版本中(。

const dateIsWithinInterval = isWithinInterval(testDate,
{ start: subWeeks(new Date(), 3), end: new Date() })

您仍然需要将字符串解析为一个有效的Date对象。

//import { isAfter, subWeeks } from 'date-fns';
const { isAfter, subWeeks } = dateFns; // cdn assignment
const dateString = '10-06-2022';
const [d, m, y] = dateString.split('-').map(n => parseInt(n, 10));
// months are 0 indexed so you need to subrtract 1.
const testDate = new Date(y, m - 1, d);
const dateIsAfter = isAfter(testDate, subWeeks(new Date(), 3));
console.log('isAfter:', dateIsAfter);
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/2.0.0-alpha0/date_fns.min.js" integrity="sha512-0kon+2zxkK5yhflwFqaTaIhLVDKGVH0YH/jm8P8Bab/4EOgC/n7gWyy7WE4EXrfPOVDeNdaebiAng0nsfeFd9A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

最新更新