protected function validateDatetime(&$value, array $field, Validation $validation)
{
$validType = true;
if ($value instanceof \DateTime) {
$validType = true;
} elseif (is_string($value)) {
try {
$dt = new \DateTime($value);
if ($dt) {
$value = $dt;
} else {
$validType = false;
}
} catch (\Exception $ex) {
$validType = false;
}
} elseif (is_numeric($value) && $value > 0) {
$value = new \DateTime('@' . (string) round($value));
$validType = true;
} else {
$validType = false;
}
return $validType;
}