vue el-date-picker動(dòng)態(tài)限制時(shí)間范圍案例詳解
分為兩種情況
1.開始時(shí)間和結(jié)束時(shí)間同一個(gè)框(限制只能本月)

2.開始時(shí)間和結(jié)束時(shí)間分開兩個(gè)框(限制開始時(shí)間不能早于當(dāng)前時(shí)間且結(jié)束時(shí)間不超過開始時(shí)間一星期)

情況1
//情況1 原創(chuàng)版權(quán)聲明:本文為weixin_40998880原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。 //本文鏈接:https://blog.csdn.net/weixin_40998880/article/details/106272897 //html <el-date-picker v-model="time" type="datetimerange" @change="datePickerChange" :picker-options="pickerOptions" range-separator="-" start-placeholder="開始日期" end-placeholder="結(jié)束日期" align="right" style="width:100%;" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00','23:59:59']"> </el-date-picker>
//script
data(){
return {
selectData: '',
pickerOptions: {
// 點(diǎn)擊時(shí),選擇的是開始時(shí)間,也就是minDate
onPick: ({ maxDate, minDate }) => {
this.selectData = minDate.getTime()
if (maxDate) {
// 解除限制
this.selectData = ''
}
},
disabledDate: (time) => {
// 是否限制的判斷條件
if (!this.isNull(this.selectData)) {
var date = new Date(this.selectData)
// 這里就是限制的條件,這里為大于或者小于本月的日期被禁用(盡量不使用這種方法,因?yàn)槠渌攴莸谋驹乱材苓M(jìn)行選擇,具體限制日期參考情況2)
return date.getMonth() > new Date(time).getMonth() || date.getMonth() < new Date(time).getMonth()
} else {
return false
}
}
}
}
},
methods:{
// 檢查是否為空
isNull(value) {
if (value) {
return false
}
return true
}
}
情況2
//情況2
//html
<el-col :span="8">
<el-form-item prop="beginTime" label="預(yù)約開始時(shí)間:">
<el-date-picker
v-model="editForm.beginTime"
type="datetime"
placeholder="選擇開始時(shí)間"
:picker-options="pickerOptions[0]"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="defaultTime[0]"
>
</el-date-picker> </el-form-item
></el-col>
<el-col :span="8"
><el-form-item prop="endTime" label="預(yù)約結(jié)束時(shí)間:">
<el-date-picker
v-model="editForm.endTime"
type="datetime"
placeholder="選擇開始時(shí)間"
:picker-options="pickerOptions[1]"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="defaultTime[1]"
>
</el-date-picker> </el-form-item
></el-col>
//script
data(){
return {
selectData: '',
defaultTime: [],
pickerOptions: [
{
disabledDate: time => {
const curDate = new Date().getTime();
const day = 14 * 24 * 3600 * 1000;
const dateRegion = curDate + day;
return (
time.getTime() < Date.now() - 8.64e7 ||
time.getTime() > dateRegion
);
}
},
{
//限制結(jié)束時(shí)間為開始時(shí)間的一周后
disabledDate: time => {
// 是否限制的判斷條件
const date = new Date(this.editForm.beginTime);
if (!this.isNull(date)) {
const day = 7 * 24 * 3600 * 1000;
const dateRegion = date.getTime() + day;
return (
//禁用小于開始時(shí)間和大與開始時(shí)間一周后的日期
new Date(time).getTime() > dateRegion ||
new Date(time).getTime() < date.getTime()
);
} else {
return false;
}
}
}
],
}
},
methods:{
// 檢查是否為空
isNull(value) {
if (value) {
return false
}
return true
},
//獲得當(dāng)前時(shí)間并添加選中時(shí)的默認(rèn)值
getNowTime() {
let d = new Date();
let year, month, day, hour, minute;
//當(dāng)前時(shí)間的十分鐘后
d.setTime(d.getTime() + 10 * 60 * 1000);
[year, month, day, hour, minute] = [
d.getFullYear(),
d.getMonth(),
d.getDate(),
d.getHours(),
d.getMinutes()
];
let hour2 = hour + 1;
//選中開始時(shí)間時(shí)的默認(rèn)值為當(dāng)前時(shí)間的十分鐘后
//選中結(jié)束時(shí)間時(shí)的默認(rèn)值為當(dāng)前時(shí)間的一個(gè)小時(shí)十分鐘后
this.defaultTime = [
hour + ":" + minute + ":00",
hour2 + ":" + minute + ":00"
];
},
}
到此這篇關(guān)于vue el-date-picker動(dòng)態(tài)限制時(shí)間范圍案例詳解的文章就介紹到這了,更多相關(guān)vue el-date-picker動(dòng)態(tài)限制時(shí)間范圍內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue3+ElementPlus el-date-picker設(shè)置可選時(shí)間范圍的示例代碼
- elementUI組件中el-date-picker限制時(shí)間范圍精確到小時(shí)的方法
- element組件el-date-picker禁用當(dāng)前時(shí)分秒之前的日期時(shí)間選擇
- 簡單設(shè)置el-date-picker的默認(rèn)當(dāng)前時(shí)間問題
- element?ui時(shí)間日期選擇器el-date-picker報(bào)錯(cuò)Prop?being?mutated:"placement"解決方式
- Vue3 elementUI如何修改el-date-picker默認(rèn)時(shí)間
- vue element-ui el-date-picker限制選擇時(shí)間為當(dāng)天之前的代碼
- el-date-picker時(shí)間清空值為null處理方案
相關(guān)文章
VUE中如何調(diào)用高德地圖獲取當(dāng)前位置(VUE2.0和3.0通用)
使用uniapp開發(fā)微信小程序時(shí),多多少少會(huì)遇到獲取當(dāng)前位置的詳細(xì)信息,下面這篇文章主要給大家介紹了關(guān)于VUE中如何調(diào)用高德地圖獲取當(dāng)前位置(VUE2.0和3.0通用)的相關(guān)資料,需要的朋友可以參考下2023-04-04
vue監(jiān)聽input標(biāo)簽的value值方法
今天小編就為大家分享一篇vue監(jiān)聽input標(biāo)簽的value值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
一次vue項(xiàng)目優(yōu)化的實(shí)際操作記錄
用vue開發(fā)項(xiàng)目上線以后,發(fā)現(xiàn)首頁加載速度非常慢,如果項(xiàng)目比較大,甚至可能出現(xiàn)10s以上的等待,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目優(yōu)化的相關(guān)資料,需要的朋友可以參考下2022-09-09
vue使用Element-UI部分組件適配移動(dòng)端問題
這篇文章主要介紹了vue使用Element-UI部分組件適配移動(dòng)端問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03

