用moment獲取一年內指定周的起始時間和結束時間
阿新 • • 發佈:2020-12-29
技術標籤:專案
原始碼:
//所選周 selectedWeek:{ handler(){ let selectedWeek = parseInt(this.selectedWeek.substring(1)) //計算所選周的周開始時間和周結束時間 let selectedWeekFirstDay = moment().year(this.year).week(selectedWeek).day(1).format('YYYY-MM-DD') let selectedWeekLastDay = moment().year(this.year).week(selectedWeek).day(7).format('YYYY-MM-DD') this.selectedWeekDay = [ selectedWeekFirstDay, selectedWeekLastDay ] //清空原來展示的表格資料 this.tableData = [] //請求一次後臺展示表格資料介面 // this.showOutTableData() }, immediate:false }, //所選年 year:{ handler(){ // this.year = newVal let selectedWeek = parseInt(this.selectedWeek.substring(1)) //計算所選周的周開始時間和周結束時間 let selectedWeekFirstDay = moment().year(this.year).week(selectedWeek).day(1).format('YYYY-MM-DD') let selectedWeekLastDay = moment().year(this.year).week(selectedWeek).day(7).format('YYYY-MM-DD') this.selectedWeekDay = [ selectedWeekFirstDay, selectedWeekLastDay ] //請求一次後臺展示表格資料介面 // this.showOutTableData() }, immediate:false },
結果每次修改下拉框的周值,打印出年份 周份相相應的周起始時間和周結束時間:
可以看到bug:使用者選擇的年份和周 列印結果都正確,但是周的起始時間和結束時間並不和它們對應。(博主當前測試時間為2020.12.28)
於是檢視moment.js官方文件:
year():獲取或設定年份
weekYear():根據語言環境獲取或設定週年
isoWeekYear():獲取或設定ISO週年
於是將year()改為weekyear():
結果列印為
周時間段終於對上了!!!!!!