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 (中国标准时间)

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐