LINUX.ORG.RU

История изменений

Исправление x3al, (текущая версия) :

Или в базе хранить не таймстамп, а дата-время как есть.

Нельзя если события шарятся между разными юзерами (в смысле событие «созвон в зуме» между юзерами с разными таймзонами должно работать). Но имеет смысл если это, например, будильник (если он в 7:00 и летнее время существует, 7:00 летнего и зимнего времени технически в разных таймзонах, но будильник автоматически переводится). Понятно, что для однократных событий некритично.

Из моего опыта, «дата-время как есть» нужны только для повторяющихся вещей для учёта летнего времени/возможной смены таймзоны (ну в смысле глобальный перевод на час вперёд или переход города в другую таймзону). Во всех остальных случаях в базе нужно хранить tz-aware таймштамп будущего события. Даже для повторяющихся вещей чаще имеет смысл скастовать в «дату-время как есть» из tz-aware таймштампа прямо перед тем, как добавить повторений. Исключения — что-то вроде будильников, гарантированно однопользовательские события.

Ну а по теме — очевидно же, что будет таймзона в профиле (автоматически заполняется из браузера при регистрации профиля, можно менять руками) и всплывающий диалог если в браузере она поменялась.

Исходная версия x3al, :

Или в базе хранить не таймстамп, а дата-время как есть.

Нельзя если события шарятся между разными юзерами (в смысле событие «созвон в зуме» между юзерами с разными таймзонами должно работать). Но имеет смысл если это, например, будильник (если он в 7:00 и летнее время существует, 7:00 летнего и зимнего времени технически в разных таймзонах, но будильник автоматически переводится). Понятно, что для однократных событий некритично.

Из моего опыта, «дата-время как есть» нужны только для повторяющихся вещей для учёта летнего времени/возможной смены таймзоны (ну в смысле глобальный перевод на час вперёд или переход города в другую таймзону). Во всех остальных случаях в базе нужно хранить tz-aware таймштамп будущего события.

Ну а по теме — очевидно же, что будет таймзона в профиле (автоматически заполняется из браузера при регистрации профиля, можно менять руками) и всплывающий диалог если в браузере она поменялась.