如何用dayjs和dayjs-recur实现每月特定日期的重复事件?
使用dayjs和dayjs-recur实现每月重复日期
步骤1:安装依赖
先安装需要的两个库:
npm install dayjs dayjs-recur # 或使用yarn yarn add dayjs dayjs-recur
步骤2:编写实现代码
先注册dayjs-recur插件,再通过递归规则生成目标日期:
const dayjs = require('dayjs'); const recur = require('dayjs-recur'); // 把递归插件注册到dayjs dayjs.extend(recur); // 用户选择的起始日期 const selectedDate = dayjs('2022-09-16'); // 方式1:生成到当年年底的每月对应日期 const endOfYear = selectedDate.endOf('year'); const recurrenceToYearEnd = selectedDate.recur().every(1).month().until(endOfYear); const datesToYearEnd = recurrenceToYearEnd.all().map(date => date.format('YYYY-MM-DD')); console.log(datesToYearEnd); // 输出: ["2022-09-16", "2022-10-16", "2022-11-16", "2022-12-16"] // 方式2:固定生成指定数量的重复日期(比如4个) const recurrenceFixedCount = selectedDate.recur().every(1).month().times(4); const datesFixedCount = recurrenceFixedCount.all().map(date => date.format('YYYY-MM-DD')); console.log(datesFixedCount); // 输出同样符合需求的数组
注意事项
- 如果起始日期是2月29日,非闰年中dayjs-recur会自动将日期调整为2月28日,避免生成无效日期。
- 若需要调整重复间隔,比如每2个月重复一次,只需把
.every(1).month()改成.every(2).month()即可。
内容的提问来源于stack exchange,提问作者Achraf
相关产品推荐
相关产品推荐

