重复日期显示错误下一个日期

我尝试按以下方式设置重复日期:

[date=2021-01-24 time=08:30:00 timezone="America/New_York" recurring="1.weeks"]

由于该日期在未来,它本应显示 2021 年 1 月 24 日为下一次发生日期。但实际上显示的是 2021 年 2 月 28 日。

实际日期:
2021-01-24T13:30:00Z

帖子预览截图(以防预览显示不同):
image


将日期改为 2021 年 1 月 25 日,日期直接跳到 2021 年 3 月 8 日,跳过了 8 天而不是 1 天。每过 7 天就会多跳一周,这似乎是日期偏差如此大的原因。是我操作有误吗?或许在创建未来的重复日期(尤其是未来年份的日期)时存在某种边界情况?

2 个赞

这看起来像是代码中有意为之。它似乎总是根据当前日期与今天之间的差异来确定重复日期:

https://github.com/discourse/discourse/blob/master/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6#L55

我尝试在代码中将其改为 localDate.datetime,浏览器中的输出是正确的,但有 4 个测试失败了。这些测试似乎就是为了确保它按这种方式工作,所以我现在怀疑我是否遗漏了什么 @j.jaffeux?重复日期应该是在你输入的日期之后,而不是当前日期,对吧?

4 个赞

是的,确实如此。我认为我忽略了这种情况,主要考虑的是当您尝试创建过去日期的重复事件时,它会自动调整到未来。我下周会再仔细查看一下。

7 个赞

此问题正在等待审查,但合并后应能解决:

感谢您的报告,很高兴这个 bug 得以解决。

7 个赞