1.安装moment.js
npm install moment
2.新建在utils文件夹中handleTime.js文件用于封装方法
import moment from 'moment'
// 计算当前周的开始和结束时间
export function calcNowWeek() {
const now = moment();
const weekNumber = now.isoWeek();
const startWeek = now.clone().isoWeek(weekNumber).startOf('isoweek').format('YYYY-MM-DD');
const endWeek = now.clone().isoWeek(weekNumber).endOf('isoweek').format('YYYY-MM-DD');
return { startWeek, endWeek };
}
// 计算当前月份的开始和结束时间
export function calcNowMonth() {
let startMonth = moment().startOf('month').format('YYYY-MM-DD');
let endMonth = moment().endOf('month').format('YYYY-MM-DD');
return { startMonth, endMonth }
}
// 计算当前季度的开始和结束时间
export function calcNowQuarter() {
let index = moment().quarter();
let year = moment().year();
let startQuarter = moment(`${year}-${3*(index-1) +1}-01`).format('YYYY-MM-DD');
let endQuarter = moment(`${year}-${3*index}-${new Date('2024',3*index,0).getDate()}`).format('YYYY-MM-DD');
return { startQuarter, endQuarter }
}
// 计算当前年的开始和结束时间
export function calcNowYear() {
let year = moment().year();
return {
startYear: `${year}-01-01`,
endYear: `${year}-12-31`
}
}
// 获取今天
export function calcToday() {
const today = moment().format('YYYY-MM-DD');
return today
}
// 获取昨天
export function calcYesterday() {
const yesterday = moment().subtract(1, 'days').format('YYYY-MM-DD');
return yesterday
}
// 获取明天
export function calcTomorrow() {
const tomorrow = moment().add(1, 'days').format('YYYY-MM-DD');
return tomorrow
}
// 以下是获取当前日期的一系列方法(方法2)
// 获取当周星期一
export function getMondayOfWeek(date) {
const day = moment(date).day(); // 获取选择日期是星期几(0-6,0表示星期日)
const diff = moment(date).date() - day + (day === 0 ? -6 : 1); // 计算星期一的日期
const monday = moment(date).date(diff); // 创建星期一的 Moment 对象\
return monday.format('YYYY-MM-DD'); // 返回格式为 "YYYY-MM-DD" 的字符串
}
// 获取当周星期日
export function getSundayOfWeek(selectedDate) {
const day = moment(selectedDate).day(); // 获取选择日期是星期几(0-6,0表示星期日)
const diff = day === 0 ? 0 : 7 - day; // 计算距离下一个星期日的天数
const sunday = moment(selectedDate).add(diff, 'days'); // 创建星期日的 Moment 对象
return sunday.format('YYYY-MM-DD'); // 返回格式为 "YYYY-MM-DD" 的字符串
}
// 获取当月第一天
export function getFirstDayOfMonth(selectedDate) {
const firstDay = moment(selectedDate).startOf('month').format('YYYY-MM-DD');
return firstDay;
}
// 获取当月最后一天
export function getLastDayOfMonth(selectedDate) {
const lastDay = moment(selectedDate).endOf('month').format('YYYY-MM-DD');
return lastDay;
}
// 获取当年第一天
export function getFirstDayOfYear(selectedDate) {
const year = moment(selectedDate).year(); // 获取选择日期的年份
const firstDayOfYear = moment(`${year}-01-01`); // 创建当年一月一号的 Moment 对象
return firstDayOfYear.format('YYYY-MM-DD'); // 返回格式为 "YYYY-MM-DD" 的字符串
}
// 获取当年最后有一天
export function getLastDayOfYear(selectedDate) {
const year = moment(selectedDate).year(); // 获取选择日期的年份
const lastDayOfYear = moment(`${year}-12-31`); // 创建当年十二月最后一天的 Moment 对象
return lastDayOfYear.format('YYYY-MM-DD'); // 返回格式为 "YYYY-MM-DD" 的字符串
}
// 获取当前季度第一天
export function getStartOfQuarter(selectedDate) {
const year = moment(selectedDate).year(); // 获取选择日期的年份
const quarter = Math.ceil((moment(selectedDate).month() + 1) / 3); // 计算当前季度
const startOfQuarter = moment(`${year}-01-01`).add((quarter - 1) * 3, 'months'); // 获取当前季度的季初一号的 Moment 对象
return startOfQuarter.format('YYYY-MM-DD'); // 返回格式为 "YYYY-MM-DD" 的字符串
}
// 获取当前季度最后一天
export function getEndOfQuarter(selectedDate) {
const year = moment(selectedDate).year(); // 获取选择日期的年份
const quarter = Math.ceil((moment(selectedDate).month() + 1) / 3); // 计算当前季度
const endOfQuarter = moment(`${year}-01-01`).add(quarter * 3, 'months').subtract(1, 'days'); // 获取当前季度的最后一天的 Moment 对象
return endOfQuarter.format('YYYY-MM-DD'); // 返回格式为 "YYYY-MM-DD" 的字符串
}
3.引入使用
import { calcNowWeek, calcNowMonth, calcNowQuarter, calcNowYear } from "@/utils/handleTime";
console.log(calcNowQuarter()) // 输出['2024-04-01','2024-06-30']