summaryrefslogtreecommitdiff
path: root/vendor/SimpleValidator
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/SimpleValidator')
-rw-r--r--vendor/SimpleValidator/Validators/Date.php31
1 files changed, 23 insertions, 8 deletions
diff --git a/vendor/SimpleValidator/Validators/Date.php b/vendor/SimpleValidator/Validators/Date.php
index 36b59fbe..54c949b0 100644
--- a/vendor/SimpleValidator/Validators/Date.php
+++ b/vendor/SimpleValidator/Validators/Date.php
@@ -3,26 +3,26 @@
namespace SimpleValidator\Validators;
use SimpleValidator\Base;
+use \DateTime;
class Date extends Base
{
- private $format;
+ private $formats = array();
- public function __construct($field, $error_message, $format)
+ public function __construct($field, $error_message, array $formats)
{
parent::__construct($field, $error_message);
- $this->format = $format;
+ $this->formats = $formats;
}
public function execute(array $data)
{
if (isset($data[$this->field]) && $data[$this->field] !== '') {
- $date = \DateTime::createFromFormat($this->format, $data[$this->field]);
-
- if ($date !== false) {
- $errors = \DateTime::getLastErrors();
- return $errors['error_count'] === 0 && $errors['warning_count'] === 0;
+ foreach ($this->formats as $format) {
+ if ($this->isValidDate($data[$this->field], $format) === true) {
+ return true;
+ }
}
return false;
@@ -30,4 +30,19 @@ class Date extends Base
return true;
}
+
+ public function isValidDate($value, $format)
+ {
+ $date = DateTime::createFromFormat($format, $value);
+
+ if ($date !== false) {
+ $errors = DateTime::getLastErrors();
+ if ($errors['error_count'] === 0 && $errors['warning_count'] === 0) {
+ $timestamp = $date->getTimestamp();
+ return $timestamp > 0 ? true : false;
+ }
+ }
+
+ return false;
+ }
}