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

日维度

获取当日 00:00:00时间戳和23:59:59的时间戳

const start = new Date(new Date().toLocaleDateString()).getTime();
console.log(start);

const end = new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1;
console.log(end);
// new Date() ; 将时间戳转换成日期格式         
// getTime();将日期转换成时间戳 

运行结果:
在这里插入图片描述

获取指定日期00:00:00时间戳和23:59:59的时间戳

const start = new Date(new Date(1672735406762).toLocaleDateString()).getTime();
console.log(start);

const end = new Date(new Date(1672735406762).toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1;
console.log(end); 
 
// new Date() ; 将时间戳转换成日期格式         
// getTime();将日期转换成时间戳

运行结果:
在这里插入图片描述

周维度

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

获取本周第一天

const today = new Date();
const day = today.getDay();
const firstDayOfWeek = today.setDate(today.getDate() - day + (day === 0 ? -6 : 1));
console.log(`本周的第一天: ${
      
      firstDayOfWeek}`);
console.log(`本周的第一天: ${
      
      new Date(firstDayOfWeek).toLocaleDateString()}`);
console.log(`本周的第一天(时间戳格式): ${
      
      new Date(new Date(firstDayOfWeek).toLocaleDateString()).getTime()}`);

运行结果:
在这里插入图片描述

获取指定日期所在周第一天和最后一天

// 获取指定日期的本周第一天
function getStartOfWeek(date) {
    
    
  date = new Date(date);
  const day = date.getDay() || 7;
  return new Date(date.setDate(date.getDate() + 1 - day))
}
 
// 获取指定日期的本周最后一天
function getEndOfWeek(date) {
    
    
  date = new Date(date);
  const day = date.getDay() || 7;
  return new Date(date.setDate(date.getDate() + 7 - day))
}
 
// 示例用法
var date = new Date(1698978659182);
var startOfWeek = getStartOfWeek(date);
var endOfWeek = getEndOfWeek(date);
 
console.log('周一:',startOfWeek);
console.log('周日:', endOfWeek);

运行结果:
在这里插入图片描述

月维度

setDate() 方法用于设置一个月的某一天并返回毫秒。
setDate(N) N为(0-31)代表这个月的第N天 结果为数值型,如果当月有 31 天:32 为下个月的第一天,如果当月有 30 天:32 为下一个月的第二天。
setDate()参数为0时代表上个月的最后一天,所以在获取指定日期所在月最后一个天时,需要将日期所在月份加+1。

获取当月第一天

const date = new Date()
date.setDate(1)
const beginTime = date.toLocaleDateString() //本月第一天
const endTime = new Date(date.getFullYear(), date.getMonth() + 1, 0)//本月的最后一天
console.log(`本月第一天: ${
      
      beginTime}`)
console.log(`本月最后一天: ${
      
      endTime}`)

页面效果:

获取指定日期当月第一天和最后一天

var date=new Date(1675180800000)
const firstDay = new Date(date.setDate(1))
console.log('firstDay:',firstDay)
const lastDay = new Date(new Date(date.getFullYear(),date.getMonth()+1,1).setDate(0))
console.log('lastDay:', lastDay, lastDay.getTime())

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/HH18700418030/article/details/133812339
今日推荐