国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

將Laravel結(jié)果傳回給使用者時(shí),時(shí)區(qū)顯示不正確。
P粉536909186
P粉536909186 2023-07-27 11:05:57
0
1
869
<p>我有一個(gè)Laravel API,應(yīng)用程式的時(shí)區(qū)設(shè)定為UTC。 MySQL的時(shí)區(qū)設(shè)定為SYSTEM,也表示為UTC。我還在用戶(hù)表中有一個(gè)列,用於儲(chǔ)存用戶(hù)的時(shí)區(qū)資訊。 <br /><br />我的前端介面有一個(gè)字段,使用者可以輸入一個(gè)日期/時(shí)間作為某個(gè)過(guò)程的時(shí)間,這個(gè)時(shí)間會(huì)以使用者的時(shí)區(qū)發(fā)送到API。因此,當(dāng)我保存該記錄時(shí),我會(huì)將其轉(zhuǎn)換為UTC,然後插入到資料庫(kù)中,如下所示;</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>我正在嘗試獲取當(dāng)前用戶(hù)時(shí)區(qū)下當(dāng)天所有用戶(hù)過(guò)程的記錄,並將這些結(jié)果返回到前端。我以為結(jié)果是正確的,但當(dāng)我的電腦到午夜時(shí),結(jié)果仍然顯示為前一天的記錄,持續(xù)了大約10個(gè)小時(shí)左右。這是我嘗試返回這些結(jié)果的方式;</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>我無(wú)法找出我錯(cuò)在哪裡。 </p>
P粉536909186
P粉536909186

全部回覆(1)
P粉006977956

我使用了whereBetween方法,並使用使用者的時(shí)區(qū)轉(zhuǎn)換了一天的開(kāi)始和結(jié)束時(shí)間。這樣,資料庫(kù)將根據(jù)使用者的本地時(shí)間進(jìn)行查詢(xún),您應(yīng)該能夠得到正確的結(jié)果。

$todayProcedures = Procedure::query()
    ->where('user_id', $user->id)
    ->whereBetween('procedure_time', [
        Carbon::now()->startOfDay()->setTimezone($user->timezone)->toDateTimeString(),
        Carbon::now()->endOfDay()->setTimezone($user->timezone)->toDateTimeString(),
    ])
    ->get();

在處理應(yīng)用程式中的時(shí)間戳記時(shí),正確處理時(shí)區(qū)轉(zhuǎn)換非常重要。為了確保一致性和準(zhǔn)確性,請(qǐng)遵循以下準(zhǔn)則:

  1. 資料庫(kù)儲(chǔ)存:始終使用UTC格式將時(shí)間戳記儲(chǔ)存在資料庫(kù)中。這樣做可以確保所有時(shí)間戳記都是標(biāo)準(zhǔn)化的,與任何特定的時(shí)區(qū)無(wú)關(guān)。
  2. 查詢(xún)時(shí)區(qū)轉(zhuǎn)換:在查詢(xún)資料庫(kù)時(shí)進(jìn)行時(shí)區(qū)轉(zhuǎn)換,而不是在記錄插入或更新時(shí)進(jìn)行。透過(guò)這樣做,您可以確保從資料庫(kù)檢索的資料在不考慮使用者時(shí)區(qū)的情況下保持一致和準(zhǔn)確。
  3. 基於使用者時(shí)區(qū)的顯示:在向使用者顯示時(shí)間戳記或根據(jù)其時(shí)區(qū)偏好進(jìn)行處理時(shí),執(zhí)行必要的轉(zhuǎn)換。透過(guò)將時(shí)間戳調(diào)整為使用者的時(shí)區(qū),您可以提供更友善和在地化的體驗(yàn)。
遵循這些準(zhǔn)則,您的應(yīng)用程式將保持準(zhǔn)確的時(shí)間戳數(shù)據(jù),並在不同的時(shí)區(qū)提供一致的結(jié)果。


最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板