1. 程式人生 > 其它 >用moment獲取一年內指定周的起始時間和結束時間

用moment獲取一年內指定周的起始時間和結束時間

技術標籤:專案

原始碼:

//所選周
    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():

結果列印為

周時間段終於對上了!!!!!!