public function validateDate($attribute, $value)
{
if ($value instanceof DateTimeInterface) {
return true;
}
if ((! is_string($value) && ! is_numeric($value)) || strtotime($value) === false) {
return false;
}
$date = date_parse($value);
return checkdate($date['month'], $date['day'], $date['year']);
}
############## OR ###################
public function validateDateFormat($attribute, $value, $parameters)
{
if (! is_string($value) && ! is_numeric($value)) {
return false;
}
$format = $parameters[0];
$date = DateTime::createFromFormat('!'.$format, $value);
return $date && $date->format($format) == $value;
}