Cakephp3 Относительные часовые пояса

В моем приложении Cakephp в качестве единственной точки истины я сохраняю дату создания статей с часовым поясом UTC, установленным по умолчанию. Когда я отображаю даты, отображается время UTC, что неверно. Конечно, я могу установить часовой пояс следующим образом:

$article->created->i18nFormat(\IntlDateFormatter::FULL, 'Europe/Paris');

Однако это будет работать только в том случае, если все пользователи были на CET. Можно ли отобразить дату с учетом часового пояса пользователя, который, конечно, может отличаться для любого пользователя?


person Alan A    schedule 13.06.2020    source источник
comment
Конечно, все, что вам нужно сделать, это узнать часовой пояс пользователя, а затем использовать его в своем вызове.   -  person Greg Schmidt    schedule 13.06.2020


Ответы (1)


Учитывая, что вы поддерживаете учетные записи пользователей в своей базе данных

  • Вы можете создать отдельную страницу настроек, где пользователь сможет поставить или обновить часовой пояс.

    $timezoneList = DateTimeZone::listIdentifiers(DateTimeZone::ALL);

Это дает все часовые пояса.

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

  • Использовать часовой пояс пользователя

    $article->created->i18nFormat(\IntlDateFormatter::FULL, $userTimeZone);

person Madhu Jayarama    schedule 21.06.2020