el-date-picker設(shè)置日期默認(rèn)值兩種方法(當(dāng)月月初至月末)

1.ElementUI日期樣式
<el-date-picker
v-model="queryParams.signDate"
type="daterange"
align="right"
unlink-panels
size="small"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
range-separator="至"
start-placeholder="開始日期"
end-placeholder="結(jié)束日期"
:picker-options="pickerOptions">
</el-date-picker>2.定義數(shù)據(jù)以及方法
這里面的signDate可以賦值為空字符''或者賦值為空數(shù)組[],這里面包含兩個(gè)值,一個(gè)值為開始日期,另一個(gè)值為結(jié)束日期
<script>
export default {
data() {
return {
queryParams: {
signDate: ''
},
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一個(gè)月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
}, {
text: '最近三個(gè)月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}]
}
}
},
created() {
// 初始化默認(rèn)時(shí)間
this.defaultDate()
},
methods: {
// 初始化默認(rèn)時(shí)間
defaultDate() {
var date = new Date()
var year = date.getFullYear().toString()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1).toString() : (date.getMonth() + 1).toString()
// var da = date.getDate() < 10 ? '0' + date.getDate().toString() : date.getDate().toString()
var da = new Date(date.getFullYear(), month, 0).getDate()
da < 10 ? '0' + da.toString() : da.toString()
var beg = year + '-' + month + '-01'
var end = year + '-' + month + '-' + da
this.queryParams.signDate = [beg, end] //將值設(shè)置給插件綁定的數(shù)據(jù)
}
},
watch: {
// 監(jiān)聽日期清理后數(shù)據(jù)為null進(jìn)行處理否則會(huì)報(bào)錯(cuò)
'queryParams.signDate'(newVal) {
if (newVal == null) {
this.queryParams.signDate = ''
this.queryParams.startTime = ''
this.queryParams.endTime = ''
}
}
}
}
</script>注意:日期選擇器清除完后這邊有坑,選擇完日期格式清除后重新加載,他會(huì)給綁定的signDate賦值為null,重新加載頁(yè)面會(huì)報(bào)錯(cuò),所以要設(shè)置上面的監(jiān)聽器,如果值為null時(shí)賦值為空字符串'',不然會(huì)報(bào)下面的錯(cuò),設(shè)置了監(jiān)聽器可以正常運(yùn)行

第二種方式:將開始日期和結(jié)束日期分為兩個(gè)時(shí)間選擇器

<el-form-item prop="startTime" style="margin-left: 20px">
<el-date-picker
v-model="queryParams.startTime"
type="date"
size="small"
placeholder="開始日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
style="width: 130px"
:picker-options="pickerOptionsStart"
>
</el-date-picker>
</el-form-item>
<el-form-item label="至" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
type="date"
size="small"
placeholder="結(jié)束日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
style="width: 130px"
:picker-options="pickerOptionsEnd"
>
</el-date-picker>
</el-form-item>定義綁定的參數(shù)及方法
<script>
export default {
data() {
return {
queryParams: {
startTime: '',
endTime: '',
},
// 開始時(shí)間不能大于結(jié)束時(shí)間
pickerOptionsStart: {
disabledDate: (time) => {
if (this.queryParams.endTime) {
return (
time.getTime() >= new Date(this.queryParams.endTime).getTime()
)
}
}
},
// 結(jié)束時(shí)間不能小于開始時(shí)間
pickerOptionsEnd: {
disabledDate: (time) => {
if (this.queryParams.startTime) {
return (
time.getTime() <= new Date(this.queryParams.startTime).getTime()
)
}
}
}
}
},
created() {
/** 重置按鈕操作 */
resetForm() {
this.$refs['formName'].resetFields()
this.queryParams.startTime = ''
this.queryParams.endTime = ''
},
// 初始化默認(rèn)時(shí)間
defaultDate() {
var date = new Date()
var year = date.getFullYear().toString()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1).toString() : (date.getMonth() + 1).toString()
// var da = date.getDate() < 10 ? '0' + date.getDate().toString() : date.getDate().toString()
var da = new Date(date.getFullYear(), month, 0).getDate()
da < 10 ? '0' + da.toString() : da.toString()
var beg = year + '-' + month + '-01'
var end = year + '-' + month + '-' + da
this.queryParams.startTime = beg //將值設(shè)置給插件綁定的數(shù)據(jù)
this.queryParams.endTime = end
}
},
watch: {
// 監(jiān)聽日期清理后數(shù)據(jù)為null進(jìn)行處理否則會(huì)報(bào)錯(cuò)
'queryParams.startTime'(newVal) {
if (newVal == null) {
this.queryParams.startTime = ''
}
},
'queryParams.endTime'(newVal) {
if (newVal == null) {
this.queryParams.endTime = ''
}
}
}
}
</script>總結(jié)
到此這篇關(guān)于el-date-picker設(shè)置日期默認(rèn)值兩種方法(當(dāng)月月初至月末)的文章就介紹到這了,更多相關(guān)el-date-picker設(shè)置日期默認(rèn)值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue項(xiàng)目中首頁(yè)長(zhǎng)時(shí)間白屏的原因以及解決過(guò)程
這篇文章主要介紹了Vue項(xiàng)目中首頁(yè)長(zhǎng)時(shí)間白屏的原因以及解決過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Vue替代vuex的存儲(chǔ)庫(kù)Pinia詳細(xì)介紹
這篇文章主要介紹了Vue替代vuex的存儲(chǔ)庫(kù)Pinia,聽說(shuō)pinia與vue3更配,便開啟了vue3的學(xué)習(xí)之路,pinia 和 vuex 具有相同的功效, 是 Vue 的存儲(chǔ)庫(kù),它允許您跨組件/頁(yè)面共享狀態(tài)2022-09-09
基于Vue3+Pinia的移動(dòng)端頁(yè)面緩存策略的解決方案
最近小編在開發(fā)移動(dòng)端 Web 應(yīng)用時(shí),遇到了一個(gè)問題:頁(yè)面緩存,經(jīng)過(guò)一番折騰和還有AI的加持,小編也順利解決了,今天就來(lái)和大家分享這個(gè)基于導(dǎo)航棧的智能緩存策略,需要的朋友可以參考下2025-10-10
vue項(xiàng)目中導(dǎo)入swiper插件的方法
這篇文章主要介紹了vue項(xiàng)目中導(dǎo)入swiper插件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
vue-pdf如何通過(guò)文件流預(yù)覽pdf文件
這篇文章主要介紹了vue-pdf如何通過(guò)文件流預(yù)覽pdf文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
element自定義 多文件上傳 觸發(fā)多次on-change問題
這篇文章主要介紹了element自定義 多文件上傳 觸發(fā)多次on-change問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Vue.js中使用Vuex實(shí)現(xiàn)組件數(shù)據(jù)共享案例
這篇文章主要介紹了Vue.js中使用Vuex實(shí)現(xiàn)組件數(shù)據(jù)共享案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
詳解vue-meta如何讓你更優(yōu)雅的管理頭部標(biāo)簽
這篇文章主要介紹了詳解vue-meta如何讓你更優(yōu)雅的管理頭部標(biāo)簽,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01

