//获取月份天数
getMonthDays(year: number, month: number): number {
const isLeapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
if (month === 2) {
return isLeapYear ? 29 : 28; // 2月份根据闰年来判断
} else if ([4, 6, 9, 11].includes(month)) {
return 30; // 4、6、9、11月份是30天
} else {
return 31; // 剩下的月份都是31天
}
},
//获取这个月最后天和第一天
getMonthStartAndEndDates(date: Date): [string, string] {
const currDate = new Date(date); // 复制日期对象(注意:直接对 date 做修改会影响传入的参数)
const year = currDate.getFullYear(); // 获取指定日期的年份
const month = currDate.getMonth(); // 获取指定日期的月份(注意:month 的取值从 0 开始)
const monthStr = (month + 1).toString().padStart(2, '0'); // 将月份转换为字符串,并且补齐前导的 0
const firstDay = `${year}-${monthStr}-01`; // 设置这个月的第一天为 01 日
const lastDay = `${year}-${monthStr}-${this.getMonthDays(year, month + 1)}`; // 设置这个月的最后一天
return [firstDay, lastDay];
},
//获取周的开始日期和结束日期
getSevenDaysAfterDate(date: Date): [string, string] {
const currDate = new Date(date); // 复制日期对象(注意:直接对 date 做修改会影响传入的参数)
const currTimestamp = currDate.getTime() + 7 * 24 * 60 * 60 * 1000; // 获取 7 天后的时间戳,单位为毫秒
const nextDate = new Date(currTimestamp); // 生成日期对象
return [currDate.toISOString().substring(0, 10), nextDate.toISOString().substring(0, 10)]; // 返回当天日期和推算后的日期
},
根据某个时间获取此时间的在当月的第一天和最后一天以及七天后的日期
最新推荐文章于 2024-07-08 16:22:29 发布