'1'];
/** @var DateTime */
protected $value;
public function setValue($value)
{
if (is_string($value)) {
$originalVal = $value;
$value = DateTime::createFromFormat(static::FORMAT, $value);
// In Chrome, if the seconds are set to 00, DateTime::createFromFormat() returns false.
// Create DateTime without seconds in format
if ($value === false) {
$format = substr(static::FORMAT, 0, strrpos(static::FORMAT, ':'));
$value = DateTime::createFromFormat($format, $originalVal);
}
if ($value === false) {
$value = $originalVal;
}
}
return parent::setValue($value);
}
public function getValueAttribute()
{
if (! $this->value instanceof DateTime) {
return $this->value;
}
return $this->value->format(static::FORMAT);
}
public function addDefaultValidators()
{
$this->getValidators()->add(new DateTimeValidator());
}
}