validateDate function is a utility for validating date strings based on various input formats. It performs comprehensive validation including format parsing, leap year checks, month-specific day limits, and configurable year range restrictions.ts
import { validateDate } from "@arkyn/server";
date (required)inputFormat configuration.stringconfig (optional)objectconfig.inputFormat (optional)"brazilianDate" expects dates in DD/MM/YYYY or DD-MM-YYYY format (e.g., "31/12/2023"), commonly used in Brazil and other countries."isoDate" expects dates in MM-DD-YYYY or MM/DD/YYYY format (e.g., "12-31-2023"), following the American date convention."timestamp" expects dates in YYYY-MM-DD or YYYY/MM/DD format (e.g., "2023-12-31"), which is the ISO 8601 standard format."brazilianDate" | "isoDate" | "timestamp""brazilianDate"config.minYear (optional)number1900config.maxYear (optional)number3000booleantypescript
import { validateDate } from "@arkyn/server";// Brazilian date format (default)validateDate("31/12/2023");// Output: true// ISO date format (American convention)validateDate("12-31-2023", { inputFormat: "isoDate" });// Output: true// Timestamp format (ISO 8601)validateDate("2023-12-31", { inputFormat: "timestamp" });// Output: true// With year range restrictionsvalidateDate("2023-12-31", {inputFormat: "timestamp",minYear: 2000,maxYear: 2100,});// Output: true// Leap year validation (2024 is a leap year)validateDate("29/02/2024", { inputFormat: "brazilianDate" });// Output: true// Invalid: 2023 is not a leap yearvalidateDate("29/02/2023", { inputFormat: "brazilianDate" });// Output: false// Invalid: April only has 30 daysvalidateDate("31/04/2023", { inputFormat: "brazilianDate" });// Output: false// Invalid: wrong formatvalidateDate("2023/12/31", { inputFormat: "brazilianDate" });// Output: false
- or / as separators.minYear and maxYear bounds.ValidateDateService from @arkyn/shared internally to perform date component validation, including proper leap year detection.- and / are accepted as date separators, regardless of the input format specified.