Validators
In This Article
Date Validator
Zend\Validator\Date
allows you to validate if a given value contains a date.
Supported options
The following options are supported for Zend\Validator\Date
:
format
: Sets the format which is used to write the date.locale
: Sets the locale which will be used to validate date values.
Default date validation
The easiest way to validate a date is by using the default date format,
Y-m-d
.
$validator = new Zend\Validator\Date();
$validator->isValid('2000-10-10'); // returns true
$validator->isValid('10.10.2000'); // returns false
Specifying a date format
Zend\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 Zend\Validator\Date(['format' => 'Y']);
$validator->isValid('2010'); // returns true
$validator->isValid('May'); // returns false
Strict mode
- Since 2.13.0
By default, Zend\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 covertable 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 Zend\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
Found a mistake or want to contribute to the documentation? Edit this page on GitHub!