获取今天、一周、一月起始的时间,格式为‘yyyy-mm-dd’

网上找的本周跨月会出现一点错误,自己记录一下。
注:0是空、1是今天、2是本周、3是本月(这是我开发时的一些参数,可自己更改)。

    const selectTime  = (e)=>{
        let datenow = new Date()
        let nowDay = datenow.getDate() //当前日
        let nowMonth = (datenow.getMonth() + 1).toString().padStart(2, '0')//当前月
        let nowYear = datenow.getFullYear() //当前年
        let nowDayOfWeek = datenow.getDay()  //今天本周的第几天
        let startTime = ''
        let endTime = ''
        if(e == 0){
            startTime = ''
            endTime = ''
        }else if(e == 1){
            startTime = nowYear+'-'+nowMonth+'-'+nowDay
            endTime = nowYear+'-'+nowMonth+'-'+nowDay
        }else if(e == 2){
            let lastDay = new Date(nowYear,nowMonth,0)
            //本周
            if (nowDayOfWeek == 0) {
                // 计算本周第一天的日期
                let start = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 6);
                startTime = start.getFullYear()+'-'+start.getMonth().toString().padStart(2, '0')+'-'+start.getDate()
                // 计算本周最后一天的日期
                let end = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
                endTime = end.getFullYear()+'-'+end.getMonth().toString().padStart(2, '0')+'-'+end.getDate()
            } else {
                let start =  new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1)
                startTime = start.getFullYear()+'-'+start.getMonth().toString().padStart(2, '0')+'-'+start.getDate()
                let end = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 7)
                console.log(21,lastDay.getDate());
                if( nowDay - nowDayOfWeek + 7 - lastDay.getDate() >= 0){
                    endTime = end.getFullYear()+'-'+(nowDay - nowDayOfWeek + 7 - lastDay.getDate()==0?end.getMonth().toString().padStart(2, '0')-1:end.getMonth().toString().padStart(2, '0'))+'-'+ (nowDay - nowDayOfWeek + 7 - lastDay.getDate()==0?lastDay.getDate():nowDay - nowDayOfWeek + 7 - lastDay.getDate())
                    console.log(22);
                }else{
                    console.log(23);
                    endTime = end.getFullYear()+'-'+end.getMonth().toString().padStart(2, '0')+'-'+end.getDate()
                }
                // endTime = end.getFullYear()+'-'+end.getMonth().toString().padStart(2, '0')+'-'+end.getDate()
            }
        }else if(e == 3){
            let lastDay = new Date(nowYear,nowMonth,0)
            //本月
            startTime = nowYear+'-'+nowMonth+'-'+1
            endTime = nowYear+'-'+nowMonth +'-'+ lastDay.getDate()
        }
        console.log(startTime,endTime);
    } 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值