我正在创建一个用于重复产生每月订单的平台。

我正在使用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()
2月,结束于28日或29日。日期是30日(或31日)时如何处理。解决方法:如果日期> 28日,则在.59(.59).dayOfYear()中添加.and()。


谢谢!

最佳答案

我不知道Later.js的细节,但是显然您可以编写称为自定义修饰符的内容:https://github.com/bunkat/later/blob/master/example/modifier.js

除此之外,如果您将一个月添加到javascript日期(数字是否大于11/12都没关系),请将月中的某天设置为第一天,然后减去1天,那么您将获得最初给定月份的最后一天的日期。例如:



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

10-08 01:27