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