Laravel の結果をユーザーに返すときに、タイムゾーンが正しく表示されません。
<p>Laravel API を使用していますが、アプリケーションのタイムゾーンは UTC に設定されています。 MySQL のタイムゾーンは SYSTEM に設定されており、これは UTC とも表されます。また、users テーブルには、ユーザーのタイムゾーン情報を保存する列もあります。 <br /><br />私のフロントエンド インターフェイスには、ユーザーが特定のプロセスの時刻として日付/時刻を入力できるフィールドがあり、この時刻はユーザーの時刻で API に送信されます。ゾーン。したがって、そのレコードが保存されるときに、それを UTC に変換してから、次のようにデータベースに挿入します。</p><p><br /></p>
<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 = Procedure::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>