Как я могу изменить время UTC MySQL DB для проекта Laravel? - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть проект Laravel с БД MySQL, установленной на часовой пояс UTC. Я хочу иметь возможность изменять время часового пояса UTC в БД на различные часовые пояса в зависимости от того, где находится клиент, обращающийся к данным.

Я могу установить параметр timezone в config/app.php динамически в зависимости от клиента, но это, похоже, не влияет на время, которое происходит в БД, когда я использую метод save в методе Laravel (в основном все возвращается в UTC).

Вероятно, есть несколько способов реализовать это, но после довольно длительного поиска я не могу найти способ заставить времена БД в UTC переключаться на выбранный мной часовой пояс.

Стоит отметить, что мой проект иногда использует модели Laravel для запросов, а иногда использует построитель запросов из класса DB. Я не уверен, нужно ли обрабатывать их по-разному, но все же я ищу решение, которое обрабатывает оба варианта использования. Спасибо.

Ответы [ 2 ]

1 голос
/ 13 апреля 2019
0 голосов
/ 15 апреля 2019

Чарльз, я благодарен за ваш ответ, но в итоге я понял, что даты правильно поступают в БД, но когда я сравнивал их с функцией MySQL NOW(), часть NOW() была тем, что мне нужно было преобразовать.

Таким образом, я получил следующую функцию CONVERT_TZ, чтобы получить то, что хотел:

CONVERT_TZ(NOW(), 'UTC', 'US/Eastern')

Третий параметр стал переменным, но вы поняли.Кроме того, это похоже на хак, но пока работает.

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