封装了工具类 DateTimeUtils.js
,可以直接复制到项目中使用.
/** * 时间日期工具类 */ import moment from ‘moment‘ export default { /** * 获取本周周一和周日日期 */ getCurrentWeek() { const start = moment().weekday(1).format(‘YYYY-MM-DD‘); //本周一 const end = moment().weekday(7).format(‘YYYY-MM-DD‘); //本周日 return [start, end] }, /** * 获取前 i 周的周一和周日日期,并以数组的方式返回。 * 当 i=1,获取的是上周一和上周日的日期; * 当 i=2,获取的是上上周一和上上周日的日期 * ...以此类推 * @param i */ getLastWeek(i) { let weekOfDay = parseInt(moment().format(‘E‘));//计算今天是这周第几天 let last_monday = moment().subtract(weekOfDay + 7 * i - 1, ‘days‘).format(‘YYYY-MM-DD‘);//周一日期 let last_sunday = moment().subtract(weekOfDay + 7 * (i - 1), ‘days‘).format(‘YYYY-MM-DD‘);//周日日期 return [last_monday, last_sunday] }, /** * 获取后 i 周的周一和周日日期,并以数组的方式返回。 * 当 i=1,获取的是下周一和下周日的日期; * 当 i=2,获取的是下下周一和下下周日的日期 * ...以此类推 * @param i */ getNextWeek(i) { let weekOfDay = parseInt(moment().format(‘E‘));//计算今天是这周第几天 let next_monday = moment().add((7 - weekOfDay) + 7 * (i - 1) + 1, ‘days‘).format(‘YYYY-MM-DD‘);//周一日期 let next_sunday = moment().add((7 - weekOfDay) + 7 * i, ‘days‘).format(‘YYYY-MM-DD‘);//周日日期 return [next_monday, next_sunday] }
举几个例子来说明使用方法
let currentWeek1 = DateTimeUtils.getCurrentWeek() //获取本周开始结束日期 let currentWeek2 = DateTimeUtils.getLastWeek(0) //获取本周开始结束日期 let currentWeek3 = DateTimeUtils.getNextWeek(0) //获取本周开始结束日期 let lastWeek1 = DateTimeUtils.getLastWeek(1) //获取上周开始结束日期 let lastWeek2 = DateTimeUtils.getLastWeek(2) //获取前两周的那一周即上上周开始结束日期 let lastWeek3 = DateTimeUtils.getLastWeek(3) //获取前三周的那一周开始结束日期 let nextWeek1 = DateTimeUtils.getNextWeek(1) //获取下周开始结束日期 let nextWeek2 = DateTimeUtils.getNextWeek(2) //获取后两周那一周即下下周开始结束日期 let nextWeek3 = DateTimeUtils.getNextWeek(3) //获取后三周那一周开始结束日期
想获取前几周或后几周的开始结束日期,就在调用 getLastWeek(i)
和 getNextWeek(i)
的时候把相应的数字传进去即可。传 0 的话就是获取本周的数据。
ps: moment文档地址 https://momentjs.com/docs/#/displaying/format/
用 moment 实现获取本周、前n周、后 n 周开始结束日期
原文:https://www.cnblogs.com/catherLee/p/13948386.html