Ошибка off-by-one при отображении даты в timeline-ago?

Когда я открываю https://meta.discourse.org/t/admin-actions-goes-behind-the-titlebar/118649 (не могу разместить ссылку, так как я новый пользователь) (или многие другие посты на Discourse), я вижу следующее:

Начальная дата на временной шкале — 25 мая, но дата, отображаемая в компоненте timeline-ago при позиции 1/5, — 26 мая.

Мой компьютер (macOS 10.14.6, Safari 12.1.2) находится в часовом поясе Pacific/Auckland. При переключении моего компьютера на America/Los_Angeles я наблюдаю те же проблемы, но все даты смещены на один день назад.

Дата в timeline-ago устанавливается по адресу discourse/app/assets/javascripts/discourse/widgets/topic-timeline.js.es6 at 9a17b196365a1f9a5e88a0f8a36e2e35c56b39bc · discourse/discourse · GitHub и использует timelineDate для форматирования даты. Это значение используется для установки start-date и now-date, поэтому маловероятно, что проблема именно здесь.

Изучив код, я предполагаю, что проблема может быть в переменной position (строки 151–154), но я могу ошибаться, так как я совсем новичок в коде Discourse и Ember.

1 лайк

Тема сильно устарела и поэтому удалена, но дата в первом сообщении —

<span title="May 24, 2019 11:14 pm" data-time="1558764857214" data-format="tiny" class="relative-date">24 мая</span>

Я думаю, это локализованная временная метка? Понятно.

<span title="May 25, 2019 6:14 pm" data-time="1558764857214" data-format="tiny" class="relative-date">May 25</span>

Я отредактировал пост, чтобы стало понятнее, в чём проблема.