js获取本周的开始时间与结束时间

前言:
项目业务根据时间段筛选数据,自定义选择,本月选择都比较好处理,但对于本周时间段有一些争议,直接找的方法当前为周日时会计算为下一周的第一天,而需求是周一到周日为本周,因而自行更改逻辑

代码如下:(代码内自行处理了格式)

// 获取本周的开始时间和结束时间
const getWeekDates = () => {
    // 获取当前日期
    const today = new Date()

    // 计算今天是一周的第几天
    const dayOfWeek = today.getDay(); // 星期天是0,星期一是1

    // 往前推一天到周日开始(如果是周一,则不需要)
    let weekStart = new Date(today);
    if (dayOfWeek !== 0) {
        weekStart.setDate(weekStart.getDate() - dayOfWeek + 1);
    } else {
        weekStart.setDate(weekStart.getDate() - dayOfWeek - 6);
    }

    // 往后推一天到周日结束
    let weekEnd = new Date(today);
    if (dayOfWeek !== 0) {
        weekEnd.setDate(weekEnd.getDate() + (7 - dayOfWeek));
    } else {
        weekEnd.setDate(weekEnd.getDate());
    }
    const start = `${weekStart.getFullYear()}-${(weekStart.getMonth() + 1) > 9 ? weekStart.getMonth() + 1 : '0' + (weekStart.getMonth() + 1)}-${weekStart.getDate() > 9 ? weekStart.getDate() : '0' + weekStart.getDate()}`
    const end = `${weekEnd.getFullYear()}-${(weekEnd.getMonth() + 1) > 9 ? weekEnd.getMonth() + 1 : '0' + (weekEnd.getMonth() + 1)}-${weekEnd.getDate() > 9 ? weekEnd.getDate() : '0' + weekEnd.getDate()}`

    return [start, end]
}

简单记录如有问题或更优解还请不要吝啬的共同沟通学习,此结。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值