2017-02-13 8 views
1

Я создаю приложение календаря, где пользователи могут сохранять события, которые повторяются.Создание ежеквартальных дат с использованием момента(). Recur()

После много исследований я решил использовать плагин момента-recur для библиотеки moment.js, чтобы сохранить даты повторяющихся событий в базе данных.

Моя проблема: пользователи в моем приложении часто желают, чтобы событие повторялось в конце финансового квартала.

В Великобритании это 31 марта, 30 июня, 30 сентября и 31 декабря.

Я не могу разработать способ реализации этой функции. Если я устанавливаю рецидивы быть «3 месяц», как это:

let recurring = moment(date).recur().every(3, 'months');

Если начать дату 31/03/2016 то пропустит июнь вообще, поскольку есть только 30 дней в июне.

Если начальная дата составляет 30/06/2016, то она не будет работать для кварталов, которые заканчиваются 31-го.

Любые советы очень ценятся!

+1

Возможно, создание 1 апреля, июля и т. Д. И вычитание в один прекрасный день было бы проще? – barbsan

+0

Эй, спасибо за ответ! Это действительно имеет смысл. В конце концов я решил использовать пакет RRule.js, потому что он более всеобъемлющий, чем мгновенный, но ваше решение сработало бы! – Sean

ответ

1

Вы можете просто получить текущий квартал и продолжать добавлять количество кварталов, таких как 1,2,3, вы получите последующие кварталы.

moment().endOf('quarter').startOf('day'); 
moment().add(1, 'quarter').endOf('quarter').startOf('day'); 
moment().add(2, 'quarter').endOf('quarter').startOf('day'); 
moment().add(3, 'quarter').endOf('quarter').startOf('day'); 

 Смежные вопросы

  • Нет связанных вопросов^_^