实际项目应用案例:

         <el-form-item label="开始日期:" prop="StartDate">
<el-date-picker
v-model="temp.StartDate"
:clearable="false"
:picker-options="pickerOptions0"
type="date"
style="width:50%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="请选择日期"/>
</el-form-item> <el-form-item label="计划结束日期:" prop="EndDate">
<el-date-picker
v-model="temp.EndDate"
:clearable="false"
:picker-options="pickerOptions1"
type="date"
style="width:50%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期"/>
</el-form-item> <el-form-item v-if="temp.HasSubmitted" label="实际结束日期:" prop="RealEndDate">
<el-date-picker
v-model="temp.RealEndDate"
:picker-options="realEndDatePickerOptions"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期"/>
</el-form-item> data() {
return {
formFilter: {
StartDate: null, // 数据库返回时间格式为: YYYY-MM-dd ,2018-11-11
EndDate: null, }, realEndDatePickerOptions: {
disabledDate: (time) => {
if (this.beginDate) {
return time.getTime() > Date.now() || time.getTime() < this.beginDate
}
}
}, pickerOptions0: {
disabledDate: (time) => {
if (this.beginDate && this.endDate) {
return time.getTime() < this.beginDate || time.getTime() >= this.endDate
}
}
},
pickerOptions1: {
disabledDate: (time) => {
if (this.beginDate && this.endDate) {
return time.getTime() >= this.endDate || time.getTime() < this.beginDate
}
}
}
}
}, computed: {
beginDate() {
return new Date(this.formFilter.StartDate).getTime() - 24 * 3600 * 1000
},
endDate() {
return new Date(this.formFilter.EndDate).getTime()
}
},

一、前提条件:数据库返回时间格式为: YYYY-MM-dd ,例如:2018-11-11

二、重点:

1通过Date(“YYYY-MM-dd ”).getTime() 转换为时间戳格式,然后比较大小。

2找到date-picker时间组件的方法:disabledDate

3 时间戳格式,减去一日就是减去一日对应的毫秒数:24 * 3600 * 1000

三、缺点:date-picker时间组件通过遍历disabledDate方法来控制日期可选和不可选,有一定的性能损失,不过测试可以接受。建议将需要计算的步骤转移到计算属性computed中进行,保持disabledDate最简化。

四、可能的性能替代方案: onchange事件中判断范围,弹出提示信息,但这种提示不够智能、友好。

提示语句案例:

this.$notify({
  title: '提示',
  message: '日期超出计划开始和结束范围!',
  type: 'warning',
  duration: 3000
})

五、element文档:http://element-cn.eleme.io/#/zh-CN/component/date-picker

六:可能的错误:

报错:disabledDate (time) {}

改为:disabledDate: (time) =>{}

错误  return time.getTime() >= this.endDate || time.getTime() < this.beginDate

改为:if (this.beginDate && this.endDate) {  return time.getTime() >= this.endDate || time.getTime() < this.beginDate }

//必须加if条件,建议将容易返回true的判断条件放在前面,减少判断时间。

----------------------------------------------------------------------------------------------------------------------------

参考过的文档:https://blog.csdn.net/qq_25386583/article/details/77044179

Element-UI 日期范围 date-picke的更多相关文章

  1. 使用element ui 日期选择器获取值后的格式问题

    一般情况下,我们需要给后台的时间格式是: "yyyy-MM-dd" 但是使用Element ui日期选择器获取的值是这样的: Fri Sep :: GMT+ (中国标准时间) 在官 ...

  2. Element ui 日期限制范围

    时间限定范围: <el-date-picker type="date" placeholder="选择日期" v-model="addForm. ...

  3. element ui 日期控件范围时间限制记录、以及计算两个日期之间的天数

    日期的筛选经常会有最小的日期选择,例如:当前日期 :clearable="false" :picker-options="pickerOptions0" val ...

  4. element ui 时间控件 多个日期

    前言:工作中用到 vue+element ui 的前端框架,需要使用时间控件来选择多个日期,已月日的形式,且有默认值,所以记录一下.转载请注明出处:https://www.cnblogs.com/yu ...

  5. 14: element ui 使用

    1.1 element ui 基本使用 参考网址: http://element.eleme.io/#/zh-CN/component/button 1.初始一个vue项目并安装element ui ...

  6. 【Element UI】使用问题记录

    [Element UI]使用问题记录 转载:https://www.cnblogs.com/yangchongxing/p/10750994.html 下载地址: https://unpkg.com/ ...

  7. 普通element ui table组件的使用

    1.使用基础的element ui 的table的基础使用 首先,使用前要先引用element库到项目中,可以直接引入element的js和css或者在vue项目下按需加载不同的组件 废话不多说,直接 ...

  8. VUE -- 对 Element UI table中数据进行二次处理

    时间——日期 后台经常给我们返回的是 时间戳 (例如:1535620671) 这时候我们页面展现的时候需要将时间戳转换为我们要的格式 例如 (YYYY-MM-DD HH:mm:ss) 如果是在Elem ...

  9. Element ui结合springboot的简单实战

    Eelment UI简单实战 前端开发 1 创建项目,导入element ui(略) 2 大致设计出想要的效果,如下 3 创建包 根据设计的大致模样在项目的components中创建对应的包,方便以后 ...

  10. Element Ui使用技巧——Form表单的校验规则rules详细说明

    Element UI中对Form表单验证的使用介绍: Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item的 prop 属性设置为需校验的字段名 ...

随机推荐

  1. Exp4 恶意代码分析 ——20164325王晓蕊

    1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systracer套件 ...

  2. Fiddler的配置

    增加监控请求的详情时间  //添加请求的响应时间 public static BindUIColumn("Time Taken")           function CalcT ...

  3. Android-Could not download kotlin-reflect.jar

    在AndroidStudio中报以下错误: 错误详情: Could not download kotlin-reflect.jar (org.jetbrains.kotlin:kotlin-refle ...

  4. Encrypt2

    begin#33AB6770A8A98127BD0B5A6DAEC68E5E9385C02D24C850B12987FE36CF1A62738174C6FE5336E3B50048E836238582 ...

  5. 背水一战 Windows 10 (114) - 后台任务: 后台任务的 Demo(与 app 不同进程), 后台任务的 Demo(与 app 相同进程)

    [源码下载] 背水一战 Windows 10 (114) - 后台任务: 后台任务的 Demo(与 app 不同进程), 后台任务的 Demo(与 app 相同进程) 作者:webabcd 介绍背水一 ...

  6. Spring Boot 2 - 初识与新工程的创建

    Spring Boot的由来 相信大家都听说过Spring框架. Spring从诞生到现在一直是流行的J2EE开发框架. 随着Spring的发展,它的功能越来越强大,随之而来的缺点也越来越明显,以至于 ...

  7. HNOI2019退役记

    退役 警告. 今年虽然我没有变强, 但是还是比去年强一点(去年树形dp都不会). Day0 明天就是省选了,晚上22:13还没有睡觉,真的是状态不好. 打了一下LCT的板子,发现终于理解了...(这叫 ...

  8. Android WebView 实现网页缩放

    需要对WebView设置的内容如下: //缩放开关,设置此属性,仅支持双击缩放,不支持触摸缩放 mWebView.getSettings().setSupportZoom(true); //设置是否可 ...

  9. 转:Python: 什么是*args和**kwargs

    今天看源码的时候发现一个是*args和**kwargs,一看就能知道args是神马,就是所有参数的数组,kwargs就不知道了,google一下,一个人的blog写的比较简单明了,秒懂了~~kwarg ...

  10. python应用-爬取猫眼电影top100

    import requests import re import json import time from requests.exceptions import RequestException d ...