条件

  1. 限制时间选择时间不能小于当前时间,并且若选择的日期大于当前日期的话,要动态取消该验证,不做此判断
  2. 开始和结束日期不能跨天
  3. 结束时间不能大于开始时间

实现效果




上代码!!!

<el-form-item label="开始时间" prop="startTime"><el-date-picker v-model="form.startTime" :popper-class="'currentDatePickerClass'" format="yyyy-MM-dd HH:mm"value-format="yyyy-MM-dd HH:mm" type="datetime" placeholder="选择开始时间" :editable="false":picker-options="pickerOptionsStart" @change="handleEndTime(false)" @blur="handleEndTime(false)" />
</el-form-item>
<el-form-item label="结束时间" prop="endTime"><el-date-picker v-model="form.endTime" :popper-class="'currentDatePickerClass'" format="yyyy-MM-dd HH:mm"value-format="yyyy-MM-dd HH:mm" type="datetime" placeholder="选择结束时间" :editable="false":disabled="form.startTime == null && form.endTime == null ?true:false" :picker-options="pickerOptionsEnd"@change="handleEndTime(true)" @blur="handleEndTime(true)" />
</el-form-item>

data()下:

// 设置开始日期
pickerOptionsStart: {disabledDate: time => {let endDateVal = this.form.endTime;if (endDateVal) {return (time.getTime() > new Date(endDateVal).getTime() || time.getTime() < new Date(endDateVal).getTime() - 86400000);} else {return time.getTime() < Date.now() - 8.64e7;}},// 限制时间selectableRange: [new Date().getHours() + ':' + new Date().getMinutes() + ':' + new Date().getSeconds() +' - 23:59:59'],
},
// 设置结束日期
pickerOptionsEnd: {disabledDate: time => {let beginDateVal = this.form.startTime;if (beginDateVal) {return (time.getTime() < new Date(beginDateVal).getTime() - 86400000 || time.getTime() > new Date(beginDateVal).getTime());} else {return time.getTime() < Date.now() - 8.64e7;}},// 限制时间selectableRange: [new Date().getHours() + ':' + new Date().getMinutes() + ':' + new Date().getSeconds() +' - 23:59:59'],
},
// 监听开始、结束时间的变化
watch: {'form.startTime': {handler(newVal, oldVal) {if (newVal != null && newVal != undefined) {// 原来的数据一直为今天,和新时间比对oldVal = Date.now();let start = new Date(oldVal);let end = new Date(newVal);// 判断是否超过一天var dateDiff = end.getDate() - start.getDate();if (dateDiff >= 1) {this.pickerOptionsStart.selectableRange = '00:00:00 - 23:59:59';} else {this.pickerOptionsStart.selectableRange = new Date().getHours() + ':' + new Date().getMinutes() + ':' +new Date().getSeconds() +' - 23:59:59'}}}},'form.endTime': {handler(newVal, oldVal) {if (newVal != null && newVal != undefined) {// 原来的数据一直为今天,和新时间比对oldVal = Date.now();let start = new Date(oldVal);let end = new Date(newVal);// 判断是否超过一天var dateDiff = end.getDate() - start.getDate();if (dateDiff >= 1) {if (this.form.startTime != null && this.form.startTime != undefined) {let startTime = new Date(this.form.startTime);this.pickerOptionsEnd.selectableRange = startTime.getHours() + ':' + startTime.getMinutes() + ':' +startTime.getSeconds() +' - 23:59:59'}} else {this.pickerOptionsEnd.selectableRange = new Date().getHours() + ':' + new Date().getMinutes() + ':' +new Date().getSeconds() +' - 23:59:59'}}}},
},

调用的函数:

// 判断结束时间
handleEndTime(obj) {if (this.form.startTime != null && this.form.endTime != null) {if (this.form.startTime >= this.form.endTime) {this.msgError("结束时间必须大于开始时间!");if (obj) {this.form.endTime = null;} else {this.form.startTime = null;}} else {let start = new Date(this.form.startTime);let end = new Date(this.form.endTime);var dateDiff = end.getDate() - start.getDate();if (dateDiff >= 1) {this.msgError("时间差不能大于一天!");if (obj) {this.form.endTime = null;} else {this.form.startTime = null;}}}}
},

Element el-date-picker组件限制选择日期/时间相关推荐

  1. asp.net使用My97 Date Picker时设置默认起始时间为n年之前的今天

    可以使用My97 Date Picker组件来收集用户输入的日期值. 首先下载该组件:http://www.my97.net/dp/index.asp放到自己的项目中. 然后在项目里面引用js和css ...

  2. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...

    学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...

  3. java date只保留年月日_Java日期时间API系列14-----Jdk8中日期API类,日期计算1,获取年月日时分秒等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  4. java date加一天_Java日期时间API系列15-----Jdk8中API类,java日期计算2,年月日时分秒的加减等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  5. php date t_细说PHP的日期时间函数date()

    PHP的日期时间函数date() 1. 输出(年-月-日)格式 echo date('Y-m-j'); //2007-02-6 echo date('y-n-j');//07-2-6 大写Y表示年四位 ...

  6. input组件选择日期时间

    input获取年月日时分秒,设置最小可选日期为当前日期(type="datetime-local") <input name="deadlinetime" ...

  7. linux-shell命令之date【显示/设置系统日期/时间】

    功能说明:显示或设置系统时间与日期. 语法介绍:date [-d <字符串>][-u][+%H%I%K%l%M%P%r%s%S%T%X%Z%a%A%b%B%c%d%D%j%m%U%w%x% ...

  8. 使用date命令,进行时间戳和日期时间的互转

    首先是知道时间转成时间戳 date -d "2014-01-16 12:30:11" +%s date -d "2014-01-16" +%s # 等价于201 ...

  9. element-UI组件之日期时间选择器与时间格式转化

    element-UI组件之日期时间选择器与时间格式转化 日期选择器与时间选择器的一般使用 日期时间选择器 选择日期时间点 选择日期范围 日期选择器 月份范围选择器 禁选日期 用time.getTime ...

最新文章

  1. AI进军新药发现研究?这99页slides了解一下
  2. 安装 SharePoint 2013
  3. 连续被巨头青睐,SpaceX 部分新项目原型系 Rust 构建
  4. easyexcel 导入指定_阿里巴巴EasyExcel使用(3)-导入
  5. 终于等到离职这一天了--献给准备、犹豫离职中的朋友们!
  6. 10首不可不读的苏轼“最”诗词,人间万事,不过如此!
  7. 英特尔核心显卡控制面板设置自定义分辨率
  8. 复制文件服务器启动,本地电脑与服务器之间如何远程复制粘贴文件呢?
  9. Python使用struct处理二进制(pack和unpack用法)
  10. 1周上线系统,效率提升100%,宜搭助力阿里巴巴法务数字化升级
  11. logback.xml和日志输入格式说明
  12. elasticsearch增删改查实现
  13. 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王 猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值
  14. 斗破苍穹-牛仔版美杜莎
  15. 4.3.2 桥架翻模
  16. linux桌面环境调整时钟,小技巧:Linux个性化面版时钟显示
  17. Python基础知识学习笔记(一)
  18. “微信之父”张小龙年薪3亿,曾独自一人完成7万行代码
  19. 【Allegro 17.4软件操作保姆级教程六】布线操作基础之一
  20. 百思不得姐框架(一)

热门文章

  1. GESP2023年6月 c++二级考试答案详解
  2. KNN算法实现鸢尾花数据集分类
  3. 现代化医院设计如何满足以人为本和不同人群不同层次的要求
  4. 基于ssm开发的求职简历管理网站
  5. Graphics2D 图片上添加图片或绘制二维码
  6. warning: adding embedded git repository: NeteaseCloudMusicApi
  7. IP地址、子网掩码、192.168.1.0/24是什么意思 -子网 -网络 -广播地址 -主机地址
  8. 关于126、163 网易邮箱发送邮件示例
  9. 十大“给力”的免费在线站长工具(上)
  10. IDEA的项目目录显示0% classes,0% lines covered的解决方法