24 lines
566 B
PHP
24 lines
566 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Casts;
|
||
|
|
|
||
|
|
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
|
||
|
|
use Carbon\Carbon;
|
||
|
|
|
||
|
|
class LocalDateTime implements CastsAttributes
|
||
|
|
{
|
||
|
|
public function get($model, string $key, $value, array $attributes)
|
||
|
|
{
|
||
|
|
return $value
|
||
|
|
? Carbon::parse($value)->setTimezone(config('app.timezone'))
|
||
|
|
: null;
|
||
|
|
}
|
||
|
|
|
||
|
|
public function set($model, string $key, $value, array $attributes)
|
||
|
|
{
|
||
|
|
return $value
|
||
|
|
? Carbon::parse($value, config('app.timezone'))->setTimezone('UTC')
|
||
|
|
: null;
|
||
|
|
}
|
||
|
|
}
|