Есть вот такой ресурс:
class TestResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'start' => $this->start->timezone('Europe/Moscow')->toDateTimeLocalString(),
];
}
}
есть вот такой тест кейс:
$d = "2024-09-01T16:00:00.000Z";
$a = new Test(['start' => $d]);
dump(
$d,
(new TestResource($a))->toArray($request),
Carbon::parse($d)->timezone('Europe/Moscow')->toDateTimeLocalString()
);
Если оставить часовой пояс приложения по умолчанию, UTC, то все работает как ожидаемо:
если же установить часовой пояс приложения в какое-либо значение (например Europe/Moscow), то поведение становится странным:
где надо настроить, чтобы парсинг даты правильно работал? в идеале указать часовой пояс приложения и отказаться от выставления ->timezone('Europe/Moscow') в ресурсах
вот код контроллера, с которым видно +- ошибку.
https://gist.github.com/FragsterAt/45a827a84fe8591...
часовой пояс приложения - москва. на входе две строки - одна без часового пояса 19:00, вторая - с часовым поясом z и 16:00, что по москве тоже 19:00.
я ожидал что значения d и d_tz будут в модели одинаковые
при этом если сдвинуть часовой пояс приложения на UTC, то он сдвигается для вывода даты, при этом парсинг все равно кривой