录入指定开始时间, 输出开始到当前的指定年月季

        function startAndNowTime(start = '2021-10-1', sign = '-') {
            const now = new Date()
            let nowYear = now.getFullYear()
            let startYear = +start.slice(0, 4)
            const nowMonth = now.getMonth()
            let year = []
            let month = []
            let manyYear = +nowYear - startYear
            let res = []
            const quarter = {
                '1': '第一季度',
                '2': '第二季度',
                '3': '第三季度',
                '4': '第四季度'
            }
            // 1. 获取从start 到 现在 经历的年份
            if (manyYear >=  1) { // 间隔一年以上
                for(let i = 0; i < manyYear + 1; i++) {
                    year.push(nowYear-i)
                }
            } else {
                year.push(+nowYear)
            }
            // 2. 获取当前年度已过了几个月,截止到当月
            for (let i = 0; i < +nowMonth + 1; i++ ) {
                month.push(i+1)  
            }
            // 3. 拼装数据 [ { year: 2021, month: [ { code: '2021-1', name: '2021-1' } ] } ]
            /** 添加月 */
            year.forEach((numyear, index) => {
                res[index] = { year: numyear, month: [], quarter: [] }
                if (index > 0) {
                    for(let i = 0; i < 12; i++) {
                        res[index].month.push({ code: `${numyear}${sign}${i+1}`, name: `${numyear}${sign}${i+1}` })
                    }
                    return
                }
                month.forEach(numMonth => {
                    res[index].month.push({ code: `${numyear}${sign}${numMonth}`, name: `${numyear}${sign}${numMonth}` })
                })
            })
            /** 添加季度 */
            res.forEach((item, index) => {
                let manyQuarter = 4 
                if (index === 0) {
                    const long = item.month.length
                    if (long <= 12) {
                        manyQuarter = 4
                    }
                    if (long <= 9) {
                        manyQuarter = 3
                    }
                    if (long <= 6) {
                        manyQuarter = 2
                    }
                    if (long <= 3) {
                        manyQuarter = 1 
                    }
                }
                console.log(manyQuarter, index)
                for (let i = 0; i < manyQuarter; i++) {
                    res[index].quarter[i] = { code: `${item.year}${sign}${i+1}`, name: `${item.year}${sign}${quarter[i+1]}` }
                }
            })
            return res
        }
        startAndNowTime()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值