实际项目应用案例:

         <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. Android中使用TabLayout实现Tab

    一.需求 activity + fragment实现tab,并可以滑动切换tab. 需要导入compile 'com.android.support:design:25.3.1' 二.layout实现 ...

  2. 调用支付宝支付(C#)

    //支付宝支付 public string AliPay(string OrderID, string Total) //OrderID订单号,Total订单总金额 { // 支付宝网关 string ...

  3. ZKWeb网页框架2.1正式发布

    2.1.0更新的内容有 更新引用类库 NHibernate 5.1.0 Npgsql 3.2.7 MySqlConnector 0.37.0 Dapper 1.50.4 Dommel 1.10.1 Z ...

  4. 「ZJOI2016」解题报告

    「ZJOI2016」解题报告 我大浙的省选题真是超级神仙--这套已经算是比较可做的了. 「ZJOI2016」旅行者 神仙分治题. 对于一个矩形,每次我们从最长边切开,最短边不会超过 \(\sqrt{n ...

  5. C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录

    第一章介绍了如何打开网站,这一章介绍一下使用IHTMLDocument3完成登录博客园,以下为代码: SHDocVw.InternetExplorer oBrowser = new SHDocVw.I ...

  6. Windows 系统中的 CMD 黑窗口简单介绍

    简介 DOS是磁盘操作系统的缩写,是个人计算机上的一类操作系统DOS命令,是DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令.磁盘操作类命令.文件操作类命令和其它命令.DOS系统 ...

  7. Python的基础语法(一)

    0. 前言 最近正在重新整理Python的基础知识,以便更好地学习新知识.这一部分主要是讲述Python基础语法的演示.下面的语法都是基于Python3的语法. 1. 注释 注释:Python的注释方 ...

  8. JavaScript百宝箱

    Js的外部引用 外部文件中不用添加<script>标签,引用书写位置需在使用之前 <script type="text/javascript" src=" ...

  9. homebrew 更改镜像,进行成功安装

    在mac系统中,使用homebrew可以很方便的管理包.按照官网的说明执行以下命令时总是报错: /usr/bin/ruby -e "$(curl -fsSL https://raw.gith ...

  10. Express框架之Jade模板引擎使用

    日期:2018-7-8  十月梦想  node.js  浏览:2952次  评论:0条 前段时间讲说了ejs模板引擎,提到了jade的效率等等问题!今天在这里简单提一下jade的使用方式!结合expr ...