2017-02-13 16 views
1

私は、ユーザーが再発するイベントを保存できるカレンダーアプリケーションを構築しています。moment()を使用して四半期の日付を生成する。recur()

多くの研究の後、私は、moment-recurプラグインをmoment.jsライブラリに使用して、定期的なイベントの日付をデータベースに保存することを選択しました。

私の問題は、私のアプリケーションのユーザーは、頻繁に金融四半期の終わりにイベントを繰り返すように設定することです。

イギリスでは、3月31日、6月30日、9月30日、12月31日です。

この機能を実装する方法はありません。私はこのような「3ヶ月」であると、再発を設定した場合:開始日が31/03/2016ある場合

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

それが唯一の30日は、6月にあるよう完全に6月をスキップします。

開始日が30/06/2016の場合、31日に終了する四半期は機能しません。

アドバイスはありがとうございます!

+1

おそらく4月1日、7月などを生成し、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'); 
関連する問題