日维度
获取当日 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())
运行结果: