На сервере выставлено
UTC время, это время не смещается ни зимой ни летом. Все времена в базе хранятся в
UTC, и наш движок работает внутри только с
UTC временем. Игровой механизм не знает про то, что будет перевод часов. Он просто всегда отдает
UTC время.
А уже непосредственно перед тем как отобразить это время в браузер, мы локализуем его в соответствии с временной зоной текущего домена.
Пример расчетов для Москвы. Каждая временная зона имеет интервал "Начало летнего времени" и "Конец летнего времени".
Daylight Saving Time started on воскресенье 25 март 02:00 local standard time
Daylight Saving Time ends on воскресенье 28 октябрь 03:00 local daylight time
Мы смотрим если дата/время попадает в этот интервал, то мы прибовляем +4 часа, если не попадает, то +3 часа. И отображаем это время вам в браузер.
Конечно, в статистике может получится так, что отобразится два раза 2:30, но это не должно вас пугать, вы должны понимать, что сначало было 2:30 UTC +4, а через час стало 2:30 UTC +3.