在我的資料庫中,我有一個 created_at 列,用于存盤以 UTC 時間創建記錄時的日期時間,我還有一個列存盤轉換為用戶時區的相同日期時間created_timezone。
在下面的代碼中,我試圖檢查當天是否有條目(關于用戶時區)
public static function isEntryMade($userID, $timezone)
{
$day = Day::where('user_id', $userID)->whereDate('created_timezone', Carbon::today()->timezone($timezone))->get();
return $day;
}
問題是結果回傳了前一天的記錄,我幾乎可以肯定這是因為該timezone()方法由于用戶時區(美國/多倫多)而減去了 5 小時。
我怎樣才能讓它只回傳今天關于用戶時區的記錄。
為了澄清起見,我還將用戶時區存盤在資料庫中,這$timezone就是。此外,該created_timezone列是 created_at 時間,但針對用戶時區進行了決議
uj5u.com熱心網友回復:
使用setTimezone()方法:
Carbon::now('UTC')->setTimezone('America/Toronto')
這UTC是您的應用時區
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403659.html
標籤:
