Работать с датами в PHP довольно просто, но когда дело доходит до работы с часовыми поясами всё становится не так просто.
Чтобы было проще работать с датами и временем в JohnCMS достаточно придерживаться простых правил:
Все даты в базе данных должны храниться в UTC
Все даты при выводе должны выводиться в часовом поясе пользователя
Для упрощения работы в JohnCMS есть несколько вспомогательных методов для работы с датами.
Выводим дату и время в пользовательском формате с учетом его часового пояса:
Выводим дату и время в определенном формате с датой и временем без учета настроек формата пользователя:
Выводим дату и время в упрощенном формате (2 часа назад, 3 секунды назад и т.д.)
А теперь рассмотрим подготовку даты и времени для записи в БД:
Эта вспомогательная функция будет полезна если пользователь где-либо на сайте может указывать дату и время. Т.к. пользователь указывает время в своем часовом поясе, то перед сохранением в БД или куда-либо ещё его необходимо сначала привести к UTC.
Обратите внимание, что стандартные функции php такие как date() и time() будут возвращать дату и время в UTC, по этому если вы используете их при записи в БД, дополнительно менять часовой пояс для них не нужно. Достаточно только при выводе воспользоваться одной из вспомогательных функций выше.