element的el-date-picker时间控件,限制选择范围区间天数并且当前之后的日期不可选

element的el-date-picker时间控件,限制选择范围区间天数并且当前之后的日期不可选

HTML部分代码

javascript 复制代码
       <el-date-picker
            v-model="dateRange"
            type="datetimerange"
            value-format="yyyy-MM-dd HH:mm:ss"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            :default-time="['00:00:00', '23:59:59']"
            :picker-options="pickerOptions"
            style="margin-right: 150px;"
        >
        </el-date-picker>

JS代码部分

javascript 复制代码
 data(){
        return {
            nextTime:'',
            dateRange: [],
            pickerMinDate: '',
            pickerOptions: {
                    onPick: ({ maxDate, minDate }) => {
                        this.pickerMinDate = minDate.getTime()
                        if (maxDate) {
                             this.pickerMinDate = ''
                        }
                    },
                    // 限制不能选择今天之后的日期
                    disabledDate: (time) => {
                        let date=new Date();
                        let year=date.getFullYear();
                        let month=date.getMonth()+1;
                        let day=date.getDate();
                        let now=`${year}-${month}-${day} 23:59:59`;
                        let mynow=new Date(now).getTime() // 这一步很关键,我看很多博主发的方法直接是获取的new Date().getTime()这个时间,实际使用并不能满足需求,所以这里需要传入我上面定义的now这个变量值时间
                        if (this.pickerMinDate) {
                            let one = 9 * 24 * 3600 * 1000。// 我这里定义的是10天的选择范围区间,这个可以根据实际项目需求更改这个时间范围!
                            let minTime = this.pickerMinDate - one
                            let maxTime = this.pickerMinDate + one
                            return time.getTime() < minTime || time.getTime() > maxTime || time.getTime()>mynow
                        }else{
                            return time.getTime() > mynow
                        }
                            
                    },
            }

        }
    },

实际效果图(当前日期为20231204,所以当前日期以后的不可选)

代码使用需要看看我代码里面的注释,根据自己的需求更改一下!

相关推荐
0思必得01 分钟前
[Web自动化] Selenium浏览器对象属性
前端·python·selenium·自动化·web自动化
小二·7 分钟前
Python Web 开发进阶实战:边缘智能网关 —— 在 Flask + Vue 中构建轻量级 IoT 边缘计算平台
前端·python·flask
是毛毛吧10 分钟前
GitHub热榜----前端已死?AionUi 横空出世:首个开源“生成式UI”框架,让 AI 在运行时“手搓”界面
前端·开源·github
斯普信专业组13 分钟前
ReAct Agent 解析:从理论到实践的高效推理框架
前端·react.js·前端框架
徐同保14 分钟前
开发onlyoffice插件,功能是选择文本后立即通知父页面
开发语言·前端·javascript
23124_8020 分钟前
Base64多层嵌套解码
前端·javascript·数据库
程序员张332 分钟前
Element Plus SCSS 变量覆盖用法
vue.js·前端框架·element-plus
啥都不懂的小小白34 分钟前
Vue Ajax与状态管理完全指南:从数据请求到全局状态控制
vue.js·ajax·vuex·插槽系统
多看书少吃饭34 分钟前
文件预览的正确做法:从第三方依赖到企业级自建方案(Vue + Java 实战)
java·前端·vue.js
菜鸟很沉34 分钟前
Vue3 + Element Plus 实现大文件分片上传组件(支持秒传、断点续传)
javascript·vue.js