ldc-groupe/app/Casts/LocalDateTime.php

47 lines
1.4 KiB
PHP
Raw Normal View History

2025-11-12 14:32:50 +01:00
<?php
namespace App\Casts;
use Carbon\Carbon;
2026-02-10 15:43:47 +01:00
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Database\Eloquent\Model;
2025-11-12 14:32:50 +01:00
class LocalDateTime implements CastsAttributes
{
2026-02-10 15:43:47 +01:00
/**
* Get local date time.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
2026-02-12 17:14:08 +01:00
* @param mixed $value
2026-02-10 15:43:47 +01:00
* @param array $attributes
* @return \Carbon\Carbon|null
* @phpcs:disable
*/
2026-02-12 17:14:08 +01:00
public function get(Model $model, string $key, mixed $value, array $attributes): ?\Carbon\Carbon
2025-11-12 14:32:50 +01:00
{
2026-02-10 15:43:47 +01:00
// phpcs:enable
2025-11-12 14:32:50 +01:00
return $value
? Carbon::parse($value)->setTimezone(config('app.timezone'))
: null;
}
2026-02-10 15:43:47 +01:00
/**
* Set the locale date time.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
2026-02-12 17:14:08 +01:00
* @param mixed $value
2026-02-10 15:43:47 +01:00
* @param array $attributes
* @return \Carbon\Carbon|null
* @phpcs:disable
*/
2026-02-12 17:14:08 +01:00
public function set(Model $model, string $key, mixed $value, array $attributes): ?\Carbon\Carbon
2025-11-12 14:32:50 +01:00
{
2026-02-10 15:43:47 +01:00
// phpcs:enable
2025-11-12 14:32:50 +01:00
return $value
? Carbon::parse($value, config('app.timezone'))->setTimezone('UTC')
: null;
}
}