该方法参数如果为
true
:则获取昨天日期。反之为明天日期。默认为true
function getYestDayOrNextDay(flag = true) {
// 获取当前日期
const today = new Date();
// 计算前一天的日期
const yesterday = new Date(today);
if (flag){
yesterday.setDate(today.getDate() - 1);
}else {
yesterday.setDate(today.getDate() + 1);
}
return yesterday.toLocaleDateString();
}
console.log(getYestDayOrNextDay()); // 2023/8/5 昨天
console.log(getYestDayOrNextDay(false)); // 2023/8/7 明天
使用JavaScript的Date对象,获取当前日期所处的星期几,计算本周的开始日期和结束日期。
function getThisWeek() {
let today = new Date();
let dayOfWeek = today.getDay() - 1;
let startDate = new Date(today.getTime() - dayOfWeek * 86400000);
let endDate = new Date(startDate.getTime() + 4 * 86400000);
return {
startDate: startDate.toLocaleDateString(), // 2023/8/7
endDate: endDate.toLocaleDateString() // 2023/8/11
};
}
- 在上述代码中,使用Date对象的getDay()方法获取当前日期的星期几,星期日为0,星期一为1,星期二为2,以此类推,从而计算本周的开始日期。假设今天是星期四,则本周的开始日期为今天减去三天,即startDate=today.getDay()*86400000,其中86400000是一天的毫秒数。
获取上周的开始结束日期,可以在上述代码的基础上再减去一周的时间。
function getLastWeek() {
let thisWeek = getThisWeek(); // 上面获取本周的函数
let startDate = new Date(new Date(thisWeek.startDate).getTime() - 7 * 86400000);
let endDate = new Date(new Date(thisWeek.endDate).getTime() - 7 * 86400000);
return {
startDate: startDate.toLocaleDateString(), // 2023/7/31
endDate: endDate.toLocaleDateString() // 2023/8/4
};
}
- 上述代码中,首先调用getThisWeek()获取本周的开始结束日期,然后将其转化为Date对象并减去一周的时间。注意,这里需要先将日期字符串转化为Date对象,再使用getTime()方法获取其对应的毫秒数。
function getNextWeek() {
let thisWeek = getThisWeek();
let startDate = new Date(new Date(thisWeek.startDate).getTime() + 7 * 86400000);
let endDate = new Date(new Date(thisWeek.endDate).getTime() + 7 * 86400000);
return {
startDate: startDate.toLocaleDateString(), // 2023/8/14
endDate: endDate.toLocaleDateString() // 2023/8/18
};
}
在JavaScript中,获取本月的开始结束日期也可以使用Date对象。首先,获取当前日期的年份和月份,然后计算本月的天数,最后计算本月的开始结束日期。
function getThisMonth() {
let today = new Date();
let year = today.getFullYear();
let month = today.getMonth() + 1;
let daysInMonth = new Date(year, month, 0).getDate();
let startDate = new Date(year, month - 1, 1);
let endDate = new Date(year, month - 1, daysInMonth);
return {
startDate: startDate.toLocaleDateString(), // 2023/8/1
endDate: endDate.toLocaleDateString() // 2023/8/31
};
}
- 在上述代码中,使用Date对象的getFullYear()和getMonth()方法获取当前日期的年份和月份,月份需要加1,因为JavaScript中的月份从0开始,0表示一月,1表示二月,以此类推。然后计算本月的天数,使用Date对象的getDate()方法,参数为0时,可以得到上个月的最后一天,即本月的天数。最后计算本月的开始结束日期,分别为1号和本月的天数号。
获取上月的开始结束日期,可以在上述代码的基础上将当前月份减1即可。
function getLastMonth() {
let thisMonth = getThisMonth();
let startDate = new Date(new Date(thisMonth.startDate).setMonth(new Date(thisMonth.startDate).getMonth() - 1));
let endDate = new Date(new Date(thisMonth.endDate).setMonth(new Date(thisMonth.endDate).getMonth(), 0));
return {
startDate: startDate.toLocaleDateString(), // 2023/7/1
endDate: endDate.toLocaleDateString() // 2023/7/31
};
}
- 在上述代码中,首先调用getThisMonth()获取本月的开始结束日期,然后将其转化为Date对象并将月份减1即可。
function getQuarter() {
let today = new Date();
let month = today.getMonth() + 1;
return Math.ceil(month / 3); // 当前8月份 值为:3
}
- 在上述代码中,使用Math.ceil()方法将月份除以3并向上取整,即可得到当前月份所处的季度。
有了当前季度,就可以计算本季度的开始结束日期。
function getThisQuarter() {
let today = new Date();
let year = today.getFullYear();
let quarter = getQuarter();
let startDate, endDate;
if (quarter == 1) {
startDate = new Date(year, 0, 1);
endDate = new Date(year, 2, 31);
} else if (quarter == 2) {
startDate = new Date(year, 3, 1);
endDate = new Date(year, 5, 30);
} else if (quarter == 3) {
startDate = new Date(year, 6, 1);
endDate = new Date(year, 8, 30);
} else if (quarter == 4) {
startDate = new Date(year, 9, 1);
endDate = new Date(year, 11, 31);
}
return {
startDate: startDate.toLocaleDateString(), // 2023/7/1
endDate: endDate.toLocaleDateString() // 2023/9/30
};
}
- 在上述代码中,根据当前季度计算本季度的开始结束日期。假设当前季度为第一季度,本季度的开始日期为1月1日,结束日期为3月31日;当前季度为第二季度,本季度的开始日期为4月1日,结束日期为6月30日;当前季度为第三季度,本季度的开始日期为7月1日,结束日期为9月30日;当前季度为第四季度,本季度的开始日期为10月1日,结束日期为12月31日。
要获取上季度的开始结束日期,可以在上述代码的基础上将当前季度减1即可。
function getLastQuarter() {
let thisQuarter = getThisQuarter();
let startDate = new Date(new Date(thisQuarter.startDate).setMonth(new Date(thisQuarter.startDate).getMonth() - 3));
let endDate = new Date(new Date(thisQuarter.endDate).setMonth(new Date(thisQuarter.endDate).getMonth() - 3));
return {
startDate: startDate.toLocaleDateString(), // 2023/4/1
endDate: endDate.toLocaleDateString() // 2023/6/30
};
}
- 在上述代码中,首先调用getThisQuarter()获取本季度的开始结束日期,然后将其转化为Date对象并将月份减3即可。
function getLastYear(){
// 获取当前日期
const today = new Date();
// 获取上一年的起始日期
const startDate = today.getFullYear() - 1 + '/1/1'
// 获取上一年的结束日期
const endDate = today.getFullYear() - 1 + '/12/31'
return {
startDate, // 2023/1/1
endDate // 2023/12/31
};
}