elementui時間/日期選擇器選擇禁用當前之前(之后)時間代碼實例
更新時間:2024年02月01日 16:11:40 作者:子揚丨
當我們在進行網(wǎng)頁開發(fā)時,通常需要用到一些日期組件來方便用戶選擇時間,其中element日期組件是一個非常好用的工具,這篇文章主要給大家介紹了關于elementui時間/日期選擇器選擇禁用當前之前(之后)時間的相關資料,需要的朋友可以參考下
01. 日期選擇
<template>
<div>
<el-date-picker
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
type="date"
placeholder="請選擇日期"
v-model="dayDate"
:picker-options="setDisabled"
></el-date-picker>
</div>
</template>
<script>
export default {
data() {
return {
dayDate: "",
setDisabled: {
// 返回禁用時間
disabledDate(time) {
return time.getTime() > Date.now(); // 可選歷史天、可選當前天、不可選未來天
// return time.getTime() > Date.now() - 8.64e7; // 可選歷史天、不可選當前天、不可選未來天
// return time.getTime() < Date.now() - 8.64e7; // 不可選歷史天、可選當前天、可選未來天
// return time.getTime() < Date.now(); // 不可選歷史天、不可選當前天、可選未來天
},
},
};
},
/*
8.64e7 是科學計數(shù)法 8.64乘以10的7次方,即為86400000也就是 1000*60*60*24 也就是一天的毫秒數(shù)。因為Date.now()
方法能夠返回得到自1970年1月1日00:00:00(UTC)到當前時間的毫秒數(shù)。咱們是北京時間的時區(qū),也就是為東8區(qū),
起點時間對應就是:"1970/01/01 08:00:00"
picker-options需要一個最終的布爾值,所以是否減去8.64e7也就是是否往前推移一天,也就是是否包含當前的天數(shù)
*/
};
</script>02. 月份選擇(示例)
<template>
<div>
<el-date-picker
v-model="value"
type="monthrange"
value-format="yyyy-MM"
format="yyyy-MM"
:picker-options="setMonthDisabled"
range-separator="至"
start-placeholder="開始時間"
end-placeholder="結束時間">
</el-date-picker>
</div>
</template>
<script>
export default {
data() {
return {
value: "",
setMonthDisabled: {
// 返回禁用時間
disabledDate(time) {
// 獲取當前的月份信息
const date = new Date(); // 獲取當前的時間基本信息,值是這樣的: Tue Jul 20 2021 14:59:43 GMT+0800 (中國標準時間)
const year = date.getFullYear(); // 獲取當前年份,值是這樣的: 2021
let month = date.getMonth() + 1; // 獲取當前月份,值是這樣的: 6 getMonth()方法返回值是0-11,也就是1月份到12月份,所以要加上1,才是當前月份
if (month >= 1 && month <= 9) {
// 如果是1月到9月就要在前面補上一個0 比如:02、07 月份這樣表示
month = "0" + month;
}
const nowDate = year.toString() + month.toString(); // 轉換成字符串拼接,最終得到年和月,比如此時的時間是2021年7月20號,所以nowDate的值是:202107
// 獲取時間選擇器的月份信息
const timeyear = time.getFullYear(); // 獲取時間選擇器的年份(有很多)
let timemonth = time.getMonth() + 1; // 與上面同理
if (timemonth >= 1 && timemonth <= 9) {
timemonth = "0" + timemonth;
}
const elTimeData = timeyear.toString() + timemonth.toString();
// 返回,時間選擇器的日期月份大于當前日期的月份,又因為disabledDate函數(shù)是控制月份禁用不可選
// 所以,最終就是:時間選擇器的月份大于當前的月份,就都禁用掉,所以就實現(xiàn)了最終效果:
// 小于等于當前月份都不可選
return elTimeData <= nowDate; // 這里雖然是字符串,但是弱類型語言js會做一個轉換,是可以比較大小的如: '202107' > '202008'
},
},
}
}
}
</script>附:element ui date-picker 禁用今天以后日期
<el-date-picker
v-bind="$attrs"
v-on="$listeners"
placeholder="選擇日期"
:picker-options="pickerOptions">
v-model='dateVal'
</el-date-picker>
//禁用今天及以后日期
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() - 24 * 3600 * 1000
}
},
//禁用今天以后日期
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now()
}
},總結
到此這篇關于elementui時間/日期選擇器選擇禁用當前之前(之后)時間的文章就介紹到這了,更多相關elementui日期選擇器選擇禁用時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Vite+Vue3+TypeScript?搭建開發(fā)腳手架的詳細過程
這篇文章主要介紹了Vite+Vue3+TypeScript?搭建開發(fā)腳手架的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02
vue?eslint報錯:Component?name?“xxxxx“?should?always?be?
新手在使用腳手架時總會報各種錯,下面這篇文章主要給大家介紹了關于vue?eslint報錯:Component?name?“xxxxx“?should?always?be?multi-word.eslintvue的4種解決方案,需要的朋友可以參考下2022-07-07
在Vue3中實現(xiàn)子組件向父組件傳遞數(shù)據(jù)的代碼示例
Vue3作為目前最熱門的前端框架之一,以其輕量化、易用性及性能優(yōu)勢吸引了大量開發(fā)者,在開發(fā)過程中,不可避免地需要在組件之間傳遞數(shù)據(jù),本文將詳細講解在Vue3中如何實現(xiàn)子組件向父組件傳遞數(shù)據(jù),并通過具體示例代碼使概念更加清晰2024-07-07

