【问题标题】:Generating Quarterly dates using moment().recur()使用 moment().recur() 生成季度日期
【发布时间】:2017-02-13 20:40:08
【问题描述】:

我正在构建一个日历应用程序,用户可以在其中保存重复发生的事件。

经过大量研究,我选择在 moment.js 库中使用 moment-recur 插件来将重复事件的日期保存在数据库中。

我的问题是:我的应用程序中的用户经常希望将事件设置为在财务季度结束时重复。

在英国是 3 月 31 日、6 月 30 日、9 月 30 日和 12 月 31 日。

我无法找到实现此功能的方法。如果我将重复设置为“3 个月”,如下所示:

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

如果开始日期是31/03/2016,那么它将完全跳过六月,因为六月只有 30 天。

如果开始日期是 30/06/2016,那么它不适用于 31 日结束的季度。

非常感谢任何建议!

【问题讨论】:

  • 也许生成 4 月 1 日、7 月等,然后减去一天会更容易吗?
  • 您好,谢谢您的回复!这实际上是有道理的。最后我决定使用 RRule.js 包,因为它比 moment-recur 更全面,但你的解决方案会奏效!

标签: javascript momentjs moment-recur


【解决方案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');

【讨论】:

    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2022-07-30
    • 2018-06-01
    • 2021-07-21
    相关资源
    最近更新 更多