Обращайтесь с TimeZone с помощью Laravel и Eloquent - PullRequest
2 голосов
/ 06 ноября 2019

Я написал приложение, используя 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();

, если пользователь не отправил датуя использую сегодня для получения данных ... но это проблема, потому что когда я пытаюсь получить сегодняшние совпадения или события, я получаю события, которые произошли вчера в моем часовом поясе.

1 Ответ

0 голосов
/ 06 ноября 2019

вы можете передать часовой пояс Carbon::today() при вызове метода, так что если вы хотите получить "сегодня" относительно только вашего часового пояса, вы бы сделали

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

И это получит временную метку дляначало дня в Панаме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...