簡體   English   中英

使用 laravel 和 eloquent 處理時區

[英]Handle TimeZone with laravel and eloquent

我使用 laravel 和 eloquent 編寫了一個應用程序,我所有的日期時間都使用 UTC 時間存儲,我的數據庫也使用 UTC。前端向用戶顯示正確的時區,但此時我有一個大問題:

我正在嘗試查詢今天將發生的所有事件,但使用 utc 時區,我的許多事件都存儲在第二天。我在巴拿馬,一個事件將在 20:00 發生,但在 UTC 將在次日01:20。

如何使用 carbon 和 eloquent 查詢今天將發生的事件?

    $date  = (!$request->date ? Carbon::today() : Carbon::parse($request->date));
    $matches = Match::whereDate('matches.matchtime', '=', $date)
    ->where('sport','=', $value)
    ->with('results')
    ->get();

如果用戶沒有發送我今天用來獲取數據的日期.. 但這是一個問題,因為當我嘗試獲取今天的比賽或事件時,我會得到昨天在我的時區發生的事件。

您可以在調用該方法時將時區傳遞給Carbon::today()因此,如果您只想獲得相對於您的時區的“今天”,您可以這樣做

Carbon::today('America/Panama');

這將獲得巴拿馬一天開始的時間戳。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM