簡體   English   中英

接收字符串並使用 date-fns 驗證它是否是有效日期

[英]Receive a string and verify if it is a valid date with date-fns

我只想驗證我收到的字符串是否是使用 date-fns 的有效日期。 我會收到這樣的日期“29/10/1989”,BR 日期。 我想將其轉換為 29-10-1989 並檢查其是否有效。 任何人都可以幫助我嗎?

const parsedDate = parseISO('29/10/1989')

上面的這段代碼不起作用,我得到“無效日期”

嘗試使用這樣的locale選項parse

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM