Повторяющаяся дата показывает неверную следующую дату

Я пытаюсь настроить повторяющуюся дату следующим образом:

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

Поскольку эта дата в будущем, должно отображаться 24 января 2021 года как следующее вхождение. Вместо этого показывается 28 февраля 2021 года.

Фактическая дата:
2021-01-24T13:30:00Z

Скриншот из предпросмотра поста (на случай, если предпросмотр отображает это иначе):
image


При изменении даты на 2021-01-25 дата сразу перескакивает на 8 марта 2021 года, пропуская 8 дней вместо одного. Каждый 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 лайков

Это ожидает проверки, но после слияния это должно исправить проблему:

Спасибо за сообщение, я рад, что эта ошибка теперь устранена.

7 лайков