Validators
Date Validator
Laminas\Validator\Date allows you to validate if a given value contains a date.
Supported Options
The following options are supported for Laminas\Validator\Date:
format: Sets the format which is used to write the date.strict: Ensures that string input exactly matches the generated date when formatted
Default Date Validation
The easiest way to validate a date is by using the default date format,
Y-m-d.
$validator = new Laminas\Validator\Date();
$validator->isValid('2000-10-10'); // returns true
$validator->isValid('10.10.2000'); // returns false
Specifying a Date Format
Laminas\Validator\Date also supports custom date formats. When you want to
validate such a date, use the format option. This option accepts any format
allowed by the PHP DateTime::createFromFormat() method.
$validator = new Laminas\Validator\Date(['format' => 'Y']);
$validator->isValid('2010'); // returns true
$validator->isValid('May'); // returns false
Strict Mode
By default, Laminas\Validator\Date only validates that it can convert the
provided value to a valid DateTime value.
If you want to require that the date is specified in a specific format, you can
provide both the date format and the strict
options. In such a scenario, the value must both be convertable to a DateTime
value and be in the same format as provided to the validator. (Generally,
this will mean the value must be a string.)
$validator = new Laminas\Validator\Date(['format' => 'Y-m-d', 'strict' => true]);
$validator->isValid('2010-10-10'); // returns true
$validator->isValid(new DateTime('2010-10-10')); // returns false; value is not a string
$validator->isValid('2010.10.10'); // returns false; format differs