JS 获取指定日期所在(周或月)第一天和最后一天

这段代码展示了如何使用JavaScript获取当前日期所在周和月的第一天及最后一天。通过`getDay()`方法确定周的第一天,并利用时间差调整到周一。对于月份,`setDate(1)`用于获取月初,而`setMonth()`结合`0`参数用于获取月末。这些方法在日历应用和数据分析中非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.日期所在周第一天最后一天 

    注意:getDay返回值为0(周日) 到 6(周六) 之间的一个整数

let date=new Date()
//本周第一天
let start=new Date(date.getTime() - (3600 * 1000 * 24 * (date.getDay() == 0 ? 6 : date.getDay()-1)))
//本周最后一天
let end=new Date(date.getTime()+(3600*1000*24* (date.getDay()==0 ? 0:7- date.getDay())))
console.log(start,end)

 //封装示例
function getDate(dateString) {
          const date = new Date(dateString);
          const week = date.getDay(); // 0-6,0 表示星期日,
          const offset = week === 0 ? -6 : 1; // 如果日期是星期日,-6,否则为 1
          const startTime = new Date(date.getTime() - (week - 1) * 24 * 60 * 60 * 1000);
          const endTime = new Date(date.getTime() + (7 - week) * 24 * 60 * 60 * 1000);
          return {
            startTime: startTime.toLocaleDateString(),
            endTime: endTime.toLocaleDateString()
       };
  }
    
  let{ startTime, endTime } = getDate(new Date());
  console.log('周一:', startTime);
  console.log('周日:', endTime);

2.日期所在月第一天,最后一天 

setDate() 方法用于设置一个月的某一天并返回毫秒。

setDate(N) N为(0-31)代表这个月的第N天 结果为数值型,如果当月有 31 天:32 为下个月的第一天,如果当月有 30 天:32 为下一个月的第二天。

setDate()参数为0时代表上个月的最后一天,所以在获取指定日期所在月最后一个天时,需要将日期所在月份加+1。

 

const date = new Date()
const start = date.setDate(1); //本月第一天
const end = new Date(date.getFullYear(), date.getMonth() + 1, 0)//本月的最后一天

例子:指定日期 所在月第一天,最后一天

当前时间Tue May 31 2022 09:05:05 GMT+0800 (中国标准时间)

var date=new Date()

new Date(date.setDate(1))

运行结果Sun May 01 2022 09:05:05 GMT+0800 (中国标准时间)


new Date(new Date(date.getfullYear(),date.getMonth()+1,1).setDate(0))
 
运行结果Tue May 31 2022 00:00:00 GMT+0800 (中国标准时间)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值