element中datepicker日期選擇器選擇周一到周日并實(shí)現(xiàn)上一周和下一周的方法
element的datepicker日期選擇器選擇周一到周日并實(shí)現(xiàn)上一周和下一周
實(shí)現(xiàn)效果
頁面初始化效果
點(diǎn)擊上一周
點(diǎn)擊下一周
實(shí)現(xiàn)選擇周一和周日過程
1、采用el-date-picker組件,類型使用 week
<el-date-picker v-model="weeklyDate" type="week" @change="newDateWeekHandle" placeholder="選擇周" style="width: 230px"> </el-date-picker>
但是范圍是從周日開始,從周一開始需要將 firstDayOfWeek
設(shè)置為 1
<el-date-picker v-model="weeklyDate" type="week" :picker-options="{'firstDayOfWeek': 1}" @change="newDateWeekHandle" placeholder="選擇周" style="width: 230px"> </el-date-picker>
2、框里還需要展示周一和周日的范圍,設(shè)置兩個(gè)新的屬性startDate和endDate
<el-date-picker :format="startDate + ' 至 ' + endDate" v-model="weeklyDate" type="week" :picker-options="{'firstDayOfWeek': 1}" @change="newDateWeekHandle" placeholder="選擇周" style="width: 230px"> </el-date-picker>
根據(jù)model屬性(默認(rèn)是星期二),來算出展示的星期一和周期日
newDateWeekHandle(){ const now = new Date(this.weeklyDate); const nowTime = now.getTime(); const day = now.getDay(); const oneDayTime = 24*60*60*1000; const mondayTime = nowTime - (day-1)*oneDayTime; const sundayTime = nowTime + (7-day)*oneDayTime; this.startDate = this.$moment(mondayTime).format('YYYY-MM-DD'); this.endDate = this.$moment(sundayTime).format('YYYY-MM-DD'); },
這里用到了moment.js,需要引入
3、下載moment
npm install moment --save
為了可以全局使用到,在main.js中全局方法掛載
import moment from 'moment' Vue.prototype.$moment = moment
4、選擇之后才能展示范圍,需要在頁面初始化時(shí)就給model屬性賦值
- 在created中調(diào)用getDateWeek方法
- 同時(shí)進(jìn)行計(jì)算周一和周日
getDateWeek(){ const now = new Date(); const nowTime = now.getTime(); const day = now.getDay(); const oneDayTime = 24*60*60*1000; const mondayTime = nowTime - (day-2)*oneDayTime;//默認(rèn)是周二 this.weeklyDate = new Date(mondayTime); this.newDateWeekHandle(); },
實(shí)現(xiàn)上一周和下一周的切換功能
實(shí)際上就是計(jì)算model屬性值就可以了,通過Date的setDate方法實(shí)現(xiàn)日期的相加減,然后根據(jù)新得到的日期計(jì)算就可以了
[參考文章][//www.dbjr.com.cn/javascript/299660yzs.htm]
handleLast(){ const last = new Date(this.weeklyDate); last.setDate(last.getDate()-7);//日期相加減 this.weeklyDate = last; this.newDateWeekHandle(); }, handleNext(){ const next = new Date(this.weeklyDate); next.setDate(next.getDate()+7); this.weeklyDate = next; this.newDateWeekHandle(); },
總結(jié)
到此這篇關(guān)于element中datepicker日期選擇器選擇周一到周日并實(shí)現(xiàn)上一周和下一周的文章就介紹到這了,更多相關(guān)element datepicker日期選擇器選擇日期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue用elementui寫form表單時(shí),在label里添加空格操作
這篇文章主要介紹了vue用elementui寫form表單時(shí),在label里添加空格操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08解讀Vue3中keep-alive和動(dòng)態(tài)組件的實(shí)現(xiàn)邏輯
這篇文章主要介紹了Vue3中keep-alive和動(dòng)態(tài)組件的實(shí)現(xiàn)邏輯,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05vue實(shí)現(xiàn)網(wǎng)頁語言國際化切換
這篇文章介紹了vue實(shí)現(xiàn)網(wǎng)頁語言國際化切換的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2021-11-11淺析Proxy可以優(yōu)化vue的數(shù)據(jù)監(jiān)聽機(jī)制問題及實(shí)現(xiàn)思路
這篇文章主要介紹了淺析Proxy可以優(yōu)化vue的數(shù)據(jù)監(jiān)聽機(jī)制問題及實(shí)現(xiàn)思路,需要的朋友可以參考下2018-11-11vue2項(xiàng)目使用exceljs多表頭導(dǎo)出功能詳解
ExcelJS是一個(gè)用于在Node.js和瀏覽器中創(chuàng)建、讀取和修改Excel文件的強(qiáng)大JavaScript庫,下面這篇文章主要給大家介紹了關(guān)于vue2項(xiàng)目使用exceljs多表頭導(dǎo)出功能的相關(guān)資料,需要的朋友可以參考下2024-05-05element?el-tree折疊收縮的實(shí)現(xiàn)示例
本文主要介紹了element?el-tree折疊收縮的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Vue3進(jìn)行樣式Scoped和Global的設(shè)置方法
在 Vue 3 中,組件化開發(fā)成為了我們提升前端開發(fā)效率的利器,其中,樣式的管理也是一個(gè)至關(guān)重要的部分,在 Vue 中,我們會經(jīng)常使用兩種樣式作用域:Scoped 樣式和 Global 樣式,本文將通過示例代碼來介紹Vue3如何進(jìn)行樣式Scoped和Global的設(shè)置,需要的朋友可以參考下2025-01-01