1

我正在创建一个用于每月定期订单的平台。

我正在使用 later.js 进行重复。我遇到了以下两种情况,我想知道是否有人对如何更好地处理这些情况有建议(或者 later.js 是否以某种方式本地处理它们):

  • later.parse.recur().on(31).dayOfMonth() 日期是给定月份的 31 号。目前的结果是在 30 日结束的跳月。解决方法:是使用 last().dayOfMonth()。

  • later.parse.recur().on(30).dayOfMonth()

  • later.parse.recur().on(31).dayOfMonth() 二月,在 28 日或 29 日结束。如果日期是 30 日(或 31 日)如何处理。解决方法:如果日期 > 28 日,添加 .and().on(59).dayOfYear()

谢谢!

4

1 回答 1

0

我不知道 later.js 的细节,但显然你可以写一些叫做自定义修饰符的东西:https ://github.com/bunkat/later/blob/master/example/modifier.js

除此之外,如果您将月份添加到 javascript 日期(如果数字大于 11/december 无关紧要),请将月份中的日期设置为第一天,然后减去 1 天,然后您将得到最初给定月份的最后一天的日期。例如:

var a = new Date("2000-02-25");
var b = new Date(new Date(a.getFullYear(),a.getMonth()+1,1)-1);
console.log(b);

于 2016-03-29T14:16:20.403 回答