ldc-groupe/app/Casts/LocalDateTime.php
2026-02-13 12:10:35 +01:00

46 lines
1.4 KiB
PHP

<?php
namespace App\Casts;
use Carbon\Carbon;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Database\Eloquent\Model;
class LocalDateTime implements CastsAttributes
{
/**
* Get local date time.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param mixed $value
* @param array $attributes
* @return \Carbon\Carbon|null
* @phpcs:disable
*/
public function get(Model $model, string $key, mixed $value, array $attributes): ?\Carbon\Carbon
{
// phpcs:enable
return $value
? Carbon::parse($value)->setTimezone(config('app.timezone'))
: null;
}
/**
* Set the locale date time.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param mixed $value
* @param array $attributes
* @return \Carbon\Carbon|null
* @phpcs:disable
*/
public function set(Model $model, string $key, mixed $value, array $attributes): ?\Carbon\Carbon
{
// phpcs:enable
return $value
? Carbon::parse($value, config('app.timezone'))->setTimezone('UTC')
: null;
}
}