检查给定日期是否在过去 3 周内
Check if given date is in last 3 weeks
我有一个样本日期:
const date = '10-03-2022';
我需要检查这个日期是否超过 3 周。或者换句话说 - 我需要检查这个日期是否在过去 3 周内或更早。
我正在尝试 date-fns
,但不是我期望的结果。
import { formatDistance, subWeeks } from 'date-fns'
formatDistance(subWeeks(new Date(), 3), date)
老实说,我不知道如何处理此类问题。这就是为什么我想在这里向你寻求帮助。谢谢!
您可以使用 isAfter
to compare against subWeeks
。即使日期是 now
.
以后的日期,这也将 return 为真
或者,您可以使用 isWithinInterval
来测试日期是否在 now
和 now
前三周之间。 (不包含在可用的 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>
我有一个样本日期:
const date = '10-03-2022';
我需要检查这个日期是否超过 3 周。或者换句话说 - 我需要检查这个日期是否在过去 3 周内或更早。
我正在尝试 date-fns
,但不是我期望的结果。
import { formatDistance, subWeeks } from 'date-fns'
formatDistance(subWeeks(new Date(), 3), date)
老实说,我不知道如何处理此类问题。这就是为什么我想在这里向你寻求帮助。谢谢!
您可以使用 isAfter
to compare against subWeeks
。即使日期是 now
.
或者,您可以使用 isWithinInterval
来测试日期是否在 now
和 now
前三周之间。 (不包含在可用的 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>