You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:00:56