Skip to main content
Version: 5.x

Date Enforce Rules

The date enforce rules provide functionality to validate and manipulate date values. This documentation covers the isDate, isAfter, isBefore, and isISO8601 rules, along with their options and configurations.

These rule exposes the validator.js date rule, and accepts the same options.

isDate Rule​

The isDate rule checks whether a given value is a valid date. It accepts various options to customize the validation behavior.

enforce(value).isDate(options);

Options​

The isDate rule accepts an optional options object to customize the validation behavior. The available options are as follows:

OptionDefault ValueDescription
format'YYYY/MM/DD'A string specifying the expected date format. The default format is 'YYYY/MM/DD'.
strictModefalseA boolean value indicating whether strict mode should be enabled. In strict mode, only strings matching the format are valid.
delimiters['/', '-']An array of allowed date delimiters. By default, both '/' and '-' are considered valid delimiters.

Valid Date Formats​

The format option accepts various valid date formats, including:

  • 'YYYY/MM/DD'
  • 'YY/MM/DD'
  • 'YYYY-MM-DD'
  • 'YY-MM-DD'
  • 'MM/DD/YYYY'
  • 'MM/DD/YY'
  • 'MM-DD-YYYY'
  • 'MM-DD-YY'
  • 'DD/MM/YYYY'
  • 'DD/MM/YY'
  • 'DD-MM-YYYY'
  • 'DD-MM-YY'

Usage Example​

import { enforce } from 'vest';
import 'vest/enforce/date';

const dateString = '2002-07-15';

// Basic usage
enforce(dateString).isDate();

// Usage with options
enforce(dateString).isDate({
format: 'YYYY-MM-DD',
strictMode: true,
delimiters: ['-', '/'],
});

isAfter Rule​

The isAfter rule checks if a given date string is after a specified date. It accepts an optional comparisonDate parameter to compare against.

enforce(dateString).isAfter(comparisonDate);

Usage Example​

import { enforce } from 'vest';
import 'vest/enforce/date';

const dateString = '2002-07-15';
const comparisonDate = '2002-07-14';

// Basic usage
enforce(dateString).isAfter(comparisonDate);

isBefore Rule​

The isBefore rule checks if a given date string is before a specified date. It accepts an optional comparisonDate parameter to compare against.

enforce(dateString).isBefore(comparisonDate);

Usage Example​

import { enforce } from 'vest';
import 'vest/enforce/date';

const dateString = '2002-07-15';
const comparisonDate = '2002-07-16';

// Basic usage
enforce(dateString).isBefore(comparisonDate);

isISO8601 Rule​

The isISO8601 rule checks if a given string is a valid ISO 8601 date. It supports strict mode and strict separator options.

enforce(dateString).isISO8601(options);

Options​

The isISO8601 rule accepts an optional options object to customize the validation behavior. The available options are as follows:

OptionDefault ValueDescription
strictfalseA boolean value indicating whether strict mode should be enabled. In strict mode, only valid ISO 8601 date strings are considered.
strictSeparatorfalseA boolean value indicating whether strict separator mode should be enabled. In strict separator mode, the date and time separator must be a 'T'.

Usage Example​

import { enforce } from 'vest';
import 'vest/enforce/date';

const dateString = '2020-07-10T15:00:00.000';

// Basic usage
enforce(dateString).isISO8601();

// Usage with options
enforce(dateString).isISO8601({
strict: true,
strictSeparator: true,
});