如何基于dayjs生成按周偏移的日期数组?
实现按周偏移的日期数组(基于Day.js)
核心思路
要生成按周偏移的日期数组,你可以利用Day.js的日期增减方法和格式化方法,通过循环生成指定数量的日期项:
- 确定起始日期(即你传入的
dayjs()实例) - 循环指定次数(比如示例中的4次),每次给当前日期累加1周(或7天)
- 将每次计算后的日期格式化为
DD/MM/YYYY字符串,存入数组
代码示例
const dayjs = require('dayjs'); // 确保已引入Day.js // 生成按周偏移的日期数组 function generateWeeklyDates(startDate, count) { const dates = []; let currentDate = startDate; for (let i = 0; i < count; i++) { // 格式化日期为DD/MM/YYYY格式 dates.push(currentDate.format('DD/MM/YYYY')); // 累加1周(等价于add(7, 'day'),用week单位更直观) currentDate = currentDate.add(1, 'week'); } return dates; } // 使用示例:传入当前日期,生成4个按周偏移的日期 const result = generateWeeklyDates(dayjs(), 4); console.log(result); // 输出类似 ["16/08/2022","23/08/2022","30/08/2022","06/09/2022"]
关键细节说明
- 日期累加逻辑:Day.js的
add()方法支持'week'作为单位,add(1, 'week')和add(7, 'day')效果完全一致,使用'week'更贴合业务语义 - 格式化规则:
DD对应两位数日期、MM对应两位数月份、YYYY对应四位数年份,刚好匹配你需要的输出格式 - 起始日期调整:如果需要从起始日期的下一周开始生成,只需在循环前先执行一次
currentDate = currentDate.add(1, 'week')即可
内容的提问来源于stack exchange,提问作者Achraf
相关产品推荐
相关产品推荐

