Ant Design 經過 WeekPicker 獲取一週的起止時間

項目中遇到了選擇日期獲取當前日期一週的週一和週日的日期,以下:git

 

項目使用的是 ant design,因此第一時間想到了 DatePicker 中的 WeekPicker 組件,查詢文檔獲得 WeekPicker 組件中的屬性和方法以下:this

引入組件,編寫相關代碼以下:spa

<WeekPicker
    value={weekData}
    onChange={this.handleWeekChange}
    style={{ width: 260 }}
    placeholder='請選擇日期'
/>

handleWeekChange = (weekData, weekStrings) => {
    console.log(weekData, weekStrings);
}

選擇日期,打印 onChange 方法獲取到回調值:code

經過打印信息能夠看出,返回的 weekData 是一個 moment 對象,weekString 是當前對象解析出來的時間值,component

默認顯示了選中的年份和第幾周,這並非我想要的,若是須要獲取到當前周詳細的時間信息,則須要對返回的結果進行處理,代碼以下:orm

handleWeekChange = weekData => {
  const startDate = moment(weekData).day(1).format('YYYY/MM/DD (dddd)'); // 週一日期
  const endDate = moment(weekData).day(7).format('YYYY/MM/DD (dddd)'); // 週日日期
  console.log(startDate, endDate);
}

從新選擇時間(好比2018年11月6日):對象

查看打印信息,以下:blog

能夠看到,已經正確獲取到了當前日期所在周的起止日期了。文檔

這裏的日期解析主要用到了 moment.js 提供的兩個方法,get

moment(date).day(1) 表明指定日期所在周的星期一的日期,
moment(date).day(7) 表明指定日期所在周的星期日的日期,
而且經過 format 方法格式化成指定的格式。更多 moment 的使用方法,參考 moment.js 文檔
相關文章
相關標籤/搜索