接收一个字符串并使用 date-fns 验证它是否是有效日期
Receive a string and verify if it is a valid date with date-fns
我只想使用 date-fns 验证我收到的字符串是否是有效日期。
我会收到这样的日期,如“1989 年 10 月 29 日”,BR 日期。
我想将其转换为 29-10-1989 并检查其是否有效。
有人可以帮我解决这个问题吗?
const parsedDate = parseISO('29/10/1989')
上面的代码不起作用,我得到了'Invalid Date'
尝试 parse
和 locale
选项,如下所示:
import { parse, isValid, format } from 'date-fns';
import { enGB } from 'date-fns/locale';
const parsedDate = parse('29/10/1989', 'P', new Date(), { locale: enGB });
const isValidDate = isValid(parsedDate);
const formattedDate = format(parsedDate, 'dd-MM-yyyy');
我想到了这个(基于阿纳托利的回答):
import { parse, isValid, format } from 'date-fns';
import { enGB } from 'date-fns/locale';
function isValidDate(day, month, year) {
const parsed = parse(`${day}/${month}/${year}`, 'P', new Date(), { locale: enGB })
return isValid(parsed)
}
console.log(isValidDate('31', '04', '2021')); // invalid: april has only 30 days
console.log(isValidDate('30', '04', '2021')); // valid
我只想使用 date-fns 验证我收到的字符串是否是有效日期。 我会收到这样的日期,如“1989 年 10 月 29 日”,BR 日期。 我想将其转换为 29-10-1989 并检查其是否有效。 有人可以帮我解决这个问题吗?
const parsedDate = parseISO('29/10/1989')
上面的代码不起作用,我得到了'Invalid Date'
尝试 parse
和 locale
选项,如下所示:
import { parse, isValid, format } from 'date-fns';
import { enGB } from 'date-fns/locale';
const parsedDate = parse('29/10/1989', 'P', new Date(), { locale: enGB });
const isValidDate = isValid(parsedDate);
const formattedDate = format(parsedDate, 'dd-MM-yyyy');
我想到了这个(基于阿纳托利的回答):
import { parse, isValid, format } from 'date-fns';
import { enGB } from 'date-fns/locale';
function isValidDate(day, month, year) {
const parsed = parse(`${day}/${month}/${year}`, 'P', new Date(), { locale: enGB })
return isValid(parsed)
}
console.log(isValidDate('31', '04', '2021')); // invalid: april has only 30 days
console.log(isValidDate('30', '04', '2021')); // valid