时间线显示日期时出现 off-by-one 错误?

当我查看 https://meta.discourse.org/t/admin-actions-goes-behind-the-titlebar/118649(作为新用户我无法直接发布链接)(或许多其他 Discourse 帖子)时,我看到以下内容:

时间轴中的开始日期是 5 月 25 日,但在时间轴组件中当位置为 1/5 时显示的日期却是 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-datenow-date,因此不太可能是问题的根源。

通过阅读代码,position(第 151-154 行)看起来_可能_是导致问题的原因,但我也不确定,因为我刚接触 Discourse 代码库和 Ember。

1 个赞

该主题已严重过时并被删除,但首帖的日期为

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

我想那是一个本地化的时间戳?我看到了

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

我已编辑帖子,使问题更清晰。