js 根据n年第n周,获取此周的开始和结束日期

// 第n年的第n周,获取开始和结束时间 (星期一为一周的开始)
function week_date(weekstr){
    let year = weekstr.split("-")[0]
    let weekNo = weekstr.split("-")[1]
    // 此年1号是星期几
    let oneday = new Date(year+'-01-01').getDay() //0-6
    // 方便计算,当为星期天时为7
    if(oneday==0){
        oneday = 7
    }

    let one_fistday;
    let one_lastday;
    // 如果1号刚好是星期一
    if(oneday == 1){
         one_fistday = year+'-01-01'
         one_lastday = year+'-01-07'
    }else{
        let jj = 8-oneday
         one_fistday = (year-1)+'-12-'+(31-oneday+2>9?31-oneday+2:'0'+(31-oneday+2))
         one_lastday = year+'-01-'+(jj>9?jj:'0'+jj)
    }

    let fistday;
    let lastday;
    // 如果刚好是第一周
    if(weekNo ==1){
        fistday = one_fistday
        lastday = one_lastday
    }else{
        fistday = addDate(one_lastday,(weekNo-2)*7+1)
        lastday = addDate(one_lastday,(weekNo-1)*7)
    }
    return [fistday,lastday]
}

//日期加减法  date参数为计算开始的日期,days为需要加的天数   
//格式:addDate('2017-1-11',20) 
function addDate(date,days){ 
    var d=new Date(date); 
    d.setDate(d.getDate()+days); 
    var m=d.getMonth()+1; 
    return d.getFullYear()+'-'+(m>9?m:'0'+m)+'-'+(d.getDate()>9?d.getDate():'0'+d.getDate()); 
}
要使用moment.js获取日期,你可以使用以下代码: ```javascript let today = moment(); // 获取当前日期 let startOfWeek = today.startOf('week').format('YYYY/MM/DD'); // 获取的开始日期 let endOfWeek = today.endOf('week').format('YYYY/MM/DD'); // 获取结束日期 console.log(startOfWeek + ' ~ ' + endOfWeek); // 打印结果 ``` 这段代码会将本的开始日期结束日期以指定的格式打印出来。你可以根据自己的需要修改日期的格式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [用 moment 实现获取、前 n 、后 n 开始结束日期](https://blog.csdn.net/weixin_34242658/article/details/91383540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [使用moment获取、前n、后n开始结束日期以及动态计算数](https://blog.csdn.net/qq_43432158/article/details/124200343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值