Laravel 결과를 사용자에게 반환할 때 시간대가 잘못 표시됩니다.
<p>Laravel API가 있고 애플리케이션의 시간대가 UTC로 설정되어 있습니다. MySQL의 시간대는 SYSTEM으로 설정되어 있으며 UTC로도 표시됩니다. 또한 사용자 테이블에는 사용자의 시간대 정보를 저장하는 열이 있습니다. <br /><br />내 프런트 엔드 인터페이스에는 사용자가 특정 프로세스의 시간으로 날짜/시간을 입력할 수 있는 필드가 있으며, 이 시간은 사용자의 시간에 API로 전송됩니다. 존. 그래서 해당 레코드가 저장되면 이를 UTC로 변환한 다음 다음과 같이 데이터베이스에 삽입합니다.
<pre class="brush:php;toolbar:false;">auth()->user()->procedure()->create([
'procedure_time' => Carbon::parse($request->procedure_time, auth()->user()->timezone)->setTimezone('UTC'),
]);
</pre>
<p>현재 사용자의 시간대에서 당일의 모든 사용자 프로세스 기록을 가져오고 해당 결과를 프런트엔드에 반환하려고 합니다. 결과가 맞는 줄 알았는데, 컴퓨터가 자정이 되어도 10시간 정도는 여전히 전날의 기록으로 결과가 나와 있었습니다. 이것이 제가 이러한 결과를 반환하려고 하는 방법입니다.</p>
<pre class="brush:php;toolbar:false;">$todayProcedures = 프로시저::query()
->where('user_id', $user->id)
->whereDate('procedure_time', '>=', Carbon::now()->startOfDay()->tz($user->timezone))
->whereDate('procedure_time', '<=', Carbon::now()->endOfDay()->tz($user->timezone))
->get();
</pre>
<p>제가 어디에서 잘못되었는지 알 수 없습니다. </p>