phpvms/app/Casts/CarbonCast.php
2026-06-01 18:38:58 -05:00

43 lines
918 B
PHP

<?php
namespace App\Casts;
use Carbon\Carbon;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Database\Eloquent\Model;
/**
* Cast into a Carbon DateTime instance
*/
class CarbonCast implements CastsAttributes
{
/**
* Transform the attribute from the underlying model values.
*
* @param Model $model
* @param mixed $value
* @return mixed
*/
public function get($model, string $key, $value, array $attributes)
{
if ($value instanceof Carbon) {
return $value;
}
return new Carbon($value);
}
public function set($model, string $key, $value, array $attributes)
{
if ($value instanceof Carbon) {
return $value->toDateTimeString();
}
if (is_string($value)) {
return (new Carbon($value))->toDateTimeString();
}
return $value;
}
}