javascript - 将 momentjs 与重复日期一起使用

标签 javascript date momentjs recurring

我有一个标记为重复日期(每年发生)的日期,这个日期是 2014 年 4 月 1 日,从 2014 年开始,这个事件将每年发生。

我有一个每周运行的工作,在这个工作中,我在数据库中插入了从今天开始的 future 180 天内发生的事件,其他事件将被丢弃。

现在在我的支票中,2016 年 4 月 1 日已经过去......所以它被丢弃(而 2015 年 4 月 1 日应该被添加,因为它在范围内)。

我正在使用 momentjs,但找不到正确的逻辑。

下面是我的代码....

//desiredDate = today + 180 days

if (isYearlyRecur) {
    var year = eventeDate.getFullYear();
    if (year < currentYear) {
        if (moment(eventeDate).unix() < moment(todayDate).unix()) {
            eventeDate = moment(eventeDate).set('year', currentYear + 1);
        }
        else if (moment(eventeDate).unix() > moment(desiredDate).unix()) {
            eventeDate = moment(eventeDate).set('year', currentYear);
        }
    }
}

正确的做法是什么,如果日期在明年......等等

最佳答案

你可以使用 rSchedule为此(我维护的 javascript 循环库)。

例子:

I have a date which flagged as recurring date (occurs every year), this date is 1st April, 2014, and starting form 2014 this event will occur yearly.

import { Schedule } from '@rschedule/rschedule';
import { MomentDateAdapter } from '@rschedule/moment-date-adapter';
import * as moment from 'moment';

const schedule = new Schedule({
  rrules: [{
    frequency: 'YEARLY',
    start: moment([2014, 3, 1]),
  }],
  dateAdapter: MomentDateAdapter,
});

I have a job which run weekly, in this job I insert in the DB events that will occur in the coming 180 days only starting from today, other events will be discarded.

const next180Days = moment().add(180, 'days').endOf('day');

if (schedule.occursBetween(moment(), next180Days)) {
  // do stuff...
}

关于javascript - 将 momentjs 与重复日期一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34160743/

相关文章:

javascript - 如何在 ASP.NET 中的 Javascript 确认按钮单击上执行存储过程

PHP MySQL 表 w AJAX : Filling in data for the whole year (day by day, 一次只显示 7 天)

javascript - MongoDB with Mongoose - 选择指定日期范围丢弃时间

javascript - MomentJs 给出了错误的月份

javascript - 'year()' 和 'format(' YYYY')' 有什么区别?

javascript - 如何在momentjs中设置时间和日期

javascript - backbone.js 中的父 subview 困境

javascript - 我的跟踪代码有什么问题吗?

javascript - 读取 jQuery 中元素的每一行

javascript - 在 JavaScript 中比较 MySQL 日期