封裝了工具類 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/