我正在寻找一种方法来确定一个月的某一天的下一次出现。这将是指一个编号的日子(例如,下一个30号)。每个月应该总是有一个合格的日期,所以如果一个特定的月份没有指定的日子,* 我们不会溢出到下一个,而是获得该月的最后一天 *。
- Carbon提供了nthOfMonth函数,但它指的是工作日。
- 我找到了几个答案,但他们处理的是下个月的那一天,而不是下一个合适的发生一天
- This answer只提供了开始日期,而在本例中,我们可能需要几个月或几年的时间,并且我们希望从那时起“赶上”订阅
- This answer看起来更接近,但似乎可以使用Carbon使其更具可读性或更简洁
Carbon中有没有适合这个用例的内置函数?有nthofMonth函数和其他带有“无溢出”的函数而没有在两者之间涵盖这个用例似乎很奇怪。
2条答案
按热度按时间ar7v8xwq1#
此函数查找一个月的下一个“n”日(不是工作日),而不会溢出:
由于我们在最后一次比较中使用了
$from
日期,我们希望确保之前使用copy()
,这样就不会扰乱日期。此外,根据您的需要,您可以考虑包含与gte()
相同的日期。vuktfyat2#
要使用Carbon获取一个月中某一天的下一次出现,可以使用next()方法并向其传递一个闭包,该闭包检查当前日期是否是您要查找的日期。
这将输出下一次出现的月份的第30天,同时考虑当前日期。如果当前日期已经是该月的第30天,则返回当前日期。