js,vue, 获取指定日期的那一周的开始、结束日期(从周日~周六)
需求: 给定一个日期,如: 2019-11-01, 获取该日期所在的这一周的开始时间、结束时间(按周日~周六算)
当执行: this.getWeekStartAndEnd('')的时候, 默认回去的问今天所在一周的开始、结束日期,
执行:this.getWeekStartAndEnd('2019-11-01'), 会输出 10.27~11.02
// 日期格式化 formatDate(date) { var myyear = date.getFullYear(); var mymonth = date.getMonth() + 1; var myweekday = date.getDate(); if (mymonth < 10) { mymonth = "0" + mymonth; } if (myweekday < 10) { myweekday = "0" + myweekday; } return mymonth + "." + myweekday }, // 获取指定日期的那一周的开始、结束日期 getWeekStartAndEnd(val) { let now = ''; if(val) { now = new Date(val); // 日期 } else { now = new Date(); // 日期 } let nowDayOfWeek = now.getDay(); // 本周的第几天 let nowDay = now.getDate(); // 当前日 let nowMonth = now.getMonth(); // 当前月 let nowYear = now.getYear(); // 当前年let weekStart = this.getWeekStartDate(nowYear, nowMonth, nowDay, nowDayOfWeek) let weekEnd = this.getWeekEndDate(nowYear, nowMonth, nowDay, nowDayOfWeek) this.weekFormat = weekStart + '~' + weekEnd console.log(this.weekFormat) }, // 获得某一周的开始日期 getWeekStartDate(nowYear, nowMonth, nowDay, nowDayOfWeek) { let weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek) return this.formatDate(weekStartDate) }, // 获得某一周的结束日期 getWeekEndDate(nowYear, nowMonth, nowDay, nowDayOfWeek) { let weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek)) return this.formatDate(weekEndDate) }