Anniversaries: date off by one

Я считаю, что в контексте сильно локализованного сообщества вы должны иметь возможность указывать часовой пояс для «дня торта» (cakeday) в Discourse. Изменение часового пояса сервера — это не то, что мы можем сделать.

Это сложная задача, и я не уверен, как её решить, даже теперь, когда мы разрешили пользователям указывать «часовые пояса».

Если вы зарегистрировались на форуме в Австралии 2 января 2019 года в 8:00.

  • Ваша годовщина (согласно «дню торта») будет 1 января 2010 года.

  • Когда вы посетите страницу годовщин в 8:00 2 января, вы увидите годовщины от 1 января 2010 года, а не 2-го числа.

Кажется, здесь речь идёт о том, чтобы использовать «локальные» часовые пояса, определённые в профилях пользователей, для учёта подобных ситуаций.

То есть:

  • Ваша годовщина должна быть 1 января 2019 года, так как ваш локальный часовой пояс в профиле пользователя — Австралия.

  • Когда вы посетите страницу годовщин 2-го числа, вы должны видеть 2-е число.


На данный момент я поддерживаю простое решение: при отображении страницы годовщин учитывать локальный часовой пояс текущего пользователя и использовать эту дату вместо даты UTC «сейчас» для случаев, когда пользователь авторизован. Это должно быть довольно простое изменение, возможно, всего пара строк кода.

@techAPJ, не могли бы вы взяться за это?

8 лайков