Временные зоны
16.02.2015 Понедельник 07:03
Немного навёл порядок с временными зонами, в которых хранится время создания постов и комментариев в базе данных и в которых оно отображается в пользовательском интерфейсе. До сегодняшнего дня этот вопрос был решён, скажем так, неоптимальным образом (это мягкий способ сказать "криво"). А именно, время в БД хранилось в той временной зоне, которая установлена на веб-сервере. Соответственно, при смене сервера время в базу данных начинало писаться в другой временной зоне. Именно так произошло при последней смене хостинга, состоявшейся 15 января этого года. До этой даты сервера моего хостера располагались где-то на восточном побережье США, соответственно время писалось в зоне EST (Eastern Standard Time). А после переезда сервера расположены в Калифорнии, и время на них — в зоне PST (Pacific Standard Time). А в UI время отображалось вообще после прибавления 8 часов. То есть, в UI до 15.01.2015 было московское время, а после этого — UTC. Короче, полная неразбериха.
Сейчас время в БД пишется строго в UTC (Universal Coordinated Time, оно же время Гринвичского меридиана), независимо от временной зоны сервера. А отображается в RST (Russian Standard Time, оно же московское время, оно же UTC+3). Все временные метки в базе данных приведены к UTC. Время в ЖЖ постится в RST. Старые временные метки в ЖЖ не обновлялись.
Однако это временное решение. В дальнейшем я планирую сделать по-человечески. А именно - в профайле пользователя можно будет выбрать свою временную зону, и тогда время создания постов и комментов будет отображаться в ней. Но это на будущее. А пока так.
17.02.2015 Вторник 04:06
Только сейчас осознал, что time zone по-русски — не "временная зона", а... "часовой пояс".