Bei der Rückgabe von Laravel-Ergebnissen an den Benutzer wird die Zeitzone falsch angezeigt.
<p>Ich habe eine Laravel-API und die Zeitzone der Anwendung ist auf UTC eingestellt. Die Zeitzone von MySQL ist auf SYSTEM eingestellt, was auch als UTC ausgedrückt wird. Ich habe auch eine Spalte in der Benutzertabelle, in der die Zeitzoneninformationen des Benutzers gespeichert sind. <br /><br />Meine Front-End-Schnittstelle verfügt über ein Feld, in das der Benutzer ein Datum/eine Uhrzeit als Uhrzeit eines bestimmten Prozesses eingeben kann. Diese Zeit wird in der Zeit des Benutzers an die API gesendet Zone. Wenn dieser Datensatz gespeichert ist, konvertiere ich ihn in UTC und füge ihn dann wie folgt in die Datenbank ein: </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>Ich versuche, Datensätze aller Benutzerprozesse für den aktuellen Tag in der Zeitzone des aktuellen Benutzers abzurufen und diese Ergebnisse an das Frontend zurückzugeben. Ich dachte, die Ergebnisse seien korrekt, aber als mein Computer Mitternacht erreichte, zeigten die Ergebnisse etwa zehn Stunden lang immer noch die Aufzeichnungen des Vortages an. So versuche ich, diese Ergebnisse zurückzugeben;</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>Ich kann nicht herausfinden, wo ich einen Fehler gemacht habe. </p>