Этап
Готова
Тип
Задача
Приоритет
Обычный
Трудоемкость
Обычная
Создана
Дата создания
3 года назад
Назначена
Обновлена
3 года назад

Сейчас мы в контейнер передаем временную зону хоста. Если в консоли сделать date, там будет время MSK. С другой стороны, если зайти в php и там вызвать echo date_default_timezone_get();, то выйдет время UTC.

При этом возникает довольно страная картина, @Gedmo/Timestampable делает new DateTime() и получает и пишет в базу UTC. Наш twig-фильтр делает new DateTime() и получает время в MSK, после чего радостно возвращает разницу, вместе с +3 часа. Мы этого не видели пока смотрели только на относительное время, но поелс деплоя tndt-25 заметим расхождение.

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

Панель управления

Комментарии могут оставлять только авторизованные пользователи
 demius 3 года назад

В общем остановимся на этом, а когда столкнемся с неправильным временем от nginx будем думать что сделать еще.

 demius 3 года назад

Обыскал документацию на gitea нигде ни намека на настройку временных зон. В настройках пользователей то же нет никаких временных зон. Так как для нас они тоже скорее головная боль, чем реальная задача (и я очень надеюсь, что так и останется), нам надо так же просто привести весь код к одной единой временной зоне, например UTC, так чтобы при деплое в hsrv-18 ничего делать не пришлось. Благо, судя по всему все разночтения в php (между @Gedmo/Timestampable и new DateTime()))

 demius 3 года назад

Давайте для первой итерации, пока единственная установка находится в Москве и работает с ней единственный юзер, ограничимся передачей глобальной tz в env. Красоту и серьёзность будем наводить когда сделаем большую часть того, чего не хватает лично нам, т.е. при выпуске версии 1.0

 demius 3 года назад

Кстати несложно сейчас добавить юзеру в настройки его предпочитаемую временную зону.

Другой вопрос, что надо найти все места отображения времени и там сделать трансформацию во временную зону пользователя