SOURCE

function getWeekAllDate(start, end) {

    let dateArr = []
    let startArr = moment(start).format("YYYY-MM-DD").split('-')
    let endArr = moment(end).format("YYYY-MM-DD").split('-')
    let db = new Date()
    db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2])
    let de = new Date()
    de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2])
    let unixDb = db.getTime()
    let unixDe = de.getTime()
    let stamp
    const oneDay = 24 * 60 * 60 * 1000;
    for (stamp = unixDb; stamp <= unixDe;) {
        dateArr.push(moment(new Date(parseInt(stamp))).format("YYYY/MM/DD"))
        stamp = stamp + oneDay
    }
    return dateArr
}
let newArr = getWeekAllDate("2021-06-01", "2021-07-31")
let sArr = []
newArr.forEach((item, index) => {
    if (new Date(item).getDay() == 6) {
        if (index < 5) {
            sArr.push(newArr.slice(0, index))
        } else {
            sArr.push(newArr.slice(index - 5, index))
        }

        if (newArr.length - index <= 5) {
            sArr.push(newArr.slice(index + 2, newArr.length))
        }
    }

})
let N = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
const test = sArr.map((item, index) => {
    return {
        title: `第${N[index]}梯次 | ${moment(new Date(item.shift())).format("MM/DD")}~${moment(new Date(item.pop())).format("MM/DD")}`,
        startTime: item.shift(),
        endTime: item.pop()
    }
})
console.log(test)
console 命令行工具 X clear

                    
>
console