vue el-date-picker 设置可选近30天且时间范围为7天

2023-05-16

el-date-picker 限制:

  1. 默认选择时间范围为最近一天;
  2. 设置快捷选项:最近1天、最近3天、最近7天等;
  3. 限制只能选择今天以及今天以前30天;
  4. 选择一个时间之后,另一个时间范围限制只能选择7天以内。

日期时间选择器组件:

<el-date-picker v-model="actDate" :picker-options="pickerOptions" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="timestamp"></el-date-picker>   

设置 pickerOptions

export default {
  data () {
    return {
      choiceDate: '',
      // 默认日期选择是最近一天
      actDate: [new Date().getTime() - 3600 * 1000 * 24 * 1, new Date().getTime()],
      pickerOptions: {
        shortcuts: [{
          text: '最近15分钟',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 60 * 1000 * 15 * 1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近30分钟',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 60 * 1000 * 30 * 1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近1小时',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 1 * 1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近3小时',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 3 * 1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近6小时',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 6 * 1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近12小时',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 12 * 1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近1天',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近3天',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 3);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近7天',
          onClick (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
            picker.$emit('pick', [start, end]);
          }
        }],
        onPick: ({ maxDate, minDate }) => {
          // 把选择的第一个日期赋值给一个变量
          this.choiceDate = minDate.getTime();
          // 如何已经选择了两个日期了,就把那个变量置空
          if (maxDate) this.choiceDate = "";
        },
        disabledDate: (time) => {
          // 如何选择了一个日期
          if (this.choiceDate) {
            // 7天的时间戳
            const date = 6 * 24 * 3600 * 1000;
            // 当前日期 - one = 7天之前
            const minTime = this.choiceDate - date;
            // 当前日期 + one = 7天之后
            const maxTime = this.choiceDate + date;
            return (
              time.getTime() < minTime ||
              time.getTime() > maxTime
              // 限制不能选择今天以后
              || time.getTime() > Date.now()
            );
          } else {
            // 如果没有选择日期,就要限制不能选择今天以后
            return time.getTime() > Date.now();
          }
        }
      }
    }
  }
}

页面效果:
请添加图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue el-date-picker 设置可选近30天且时间范围为7天 的相关文章

  • SWDL学习篇

    WSDL 学习篇 1 什么是WSDL WSDL 是网络服务描述语言 xff0c 使用xml 编写 xff0c 是xml 文档 xff0c 可规定服务的位置以及提供服务的操作和方法 2 WSDL 文档结构 1 lt portType gt 元
  • linux面试题

    1 在Linux系统中 以 文件 方式访问设备 2 Linux内核引导时 从文件 etc fstab 中读取要加载的文件系统 3 Linux文件系统中每个文件用 i节点 来标识 4 全部磁盘块由四个部分组成 分别为 引导块 专用块 i节点表
  • MySql学习笔记(一)MySql卸载和安装说明

    MySql卸载 开始 控制面板 程序和功能 MySQL server xx 卸载 删除 C Program Files x86 MySQL 文件 删除 C ProgramData MySQL 文件 xff08 隐藏目录 xff09 如果以上
  • MySql学习笔记(二)MySql配置文件和服务操作说明

    Mysql配置文件说明 MySQL MySQL ServerX X my ini mysqld 为服务端配置 xff0c 服务端端口号 port 61 3306 安装目录 basedir 61 34 C Program Files MySQ
  • MySql学习笔记(三)MySql常用命令说明

    一 数据库命令 1 1显示数据库命令 命令 xff1a mysql gt show databases 执行后 xff1a 43 43 Database 43 43 information schema mysql performance
  • 什么是源端口和目的端口

    源端口就是指本地端口 目的端口就是远程端口 一个数据包 xff08 pocket xff09 被解封装成数据段 xff08 segment xff09 后就会涉及到 连接上层协议的端口问题 很多人都在源端口和目的端口这两个概念上犯迷糊 xf
  • Redux 学习系列(一) —— 基础概念入门篇

    简介 Redux 是一个可预测的 JavaScript 应用状态管理容器 xff0c 也可以说是一个应用数据流框架 作用 Redux 主要是用作应用状态的管理 它抽离所有组件的状态 xff0c 构造一个中心化的单独常量状态树 xff08 对
  • ini文件

    关于ini 文件的存储于加载 xff0c 初次遇到 xff0c 刚接触ini 文件 xff0c 我想我该把它记下 xff0c 以后提醒自己要常用 参数 保存 xff1a 参数结构体 struct TextConfig int nVol 音量
  • TX2安装Realsense -L515相机并在ros下 运行 总结

    1 写在最前面 坑爹呀有木有 xff0c L515 刚弄出来 xff0c 导师就让用 一堆坑呀 xff0c 最大的谎言就是ubuntu1604能用realsense2 不管之前D435之流留下多少恩爱情仇 xff0c https www i
  • 12-IDEA配置JDK版本(2020.2.3版本)

    1 配置当前项目的JDK版本 File gt Project Structure gt Project SDKs xff0c 也可以直接点击右上角的图标 2 配置之后创建的新项目JDK版本 类似于全局配置 File gt New Proje
  • 傅立叶变换详解

    傅里叶变换 傅里叶变换 xff08 Fourier transform xff09 是一种线性的积分变换 xff0c 从时间转换为频率的变化 1 连续傅里叶变换 这是将频率域的函数F 表示为时间域的函数f xff08 t xff09 的积分
  • 快速排序算法的发明者霍尔

    霍尔介绍 霍尔 Sir Charles Antony Richard Hoare 是一位英国计算机科学家 xff0c 他也是著名的快速排序算法的发明者 他出生于斯里兰卡 xff0c 1956年毕业于牛津大学 然后的两年里他服役于英国皇家海军
  • 基于QT实现的可视化单链表

    前言 概念介绍 线性表的基本概念已经在上节可视化线性表之顺序存储过程中讲解 xff0c 下面我们主要讲解线性表的链式存储原理 原理讲解 我们以 12 8 3 24 21 6 11 15 22 9 这个序列为例说明线性表的链式存储的实现原理
  • 递归是如何用栈来实现的?

    前言 概念介绍 栈的基本概念和原理我们已在 文章链接 中做过具体说明 xff0c 下面我们主要讲讲递归算法 什么是递归 xff1f 百度百科上的解释如下 xff1a 程序调用自身的编程技巧称为递归 xff1b 一般来说 xff0c 递归需要
  • 可视化讲解:什么是分糖果问题?

    前言 概念介绍 在上一节 算法 xff1a 什么是分糖果问题 xff1f 中我们已经详细的描述了分糖果问题的基本概念 xff0c 在这里我们就不再赘述 下面我们用具体的例子来说明解该问题的原理 原理讲解 首先初始化每个人一个糖果 然后这个算
  • 算法:什么是数飞机问题?

    最近小多米一直爬在窗子边抬头看着天空 xff0c 指着空中飞机留下的白色痕迹 xff0c 激动的手舞足蹈的给我说 xff1a 飞机 xff0c 飞机 其实每架飞机的起飞和降落都有固定的时间 xff0c 假定已经知道了每架飞机起飞和降落的时间
  • 可视化讲解:什么是数飞机问题?

    前言 概念介绍 在上一节 算法 xff1a 什么是数飞机问题 中我们已经详细的描述了数飞机问题的基本概念 xff0c 在这里我们就不再赘述 下面我们用具体的例子来说明讲解该问题的原理 原理讲解 我们可以用一个Map来记录每一时间点的降落和起
  • Redux 学习系列(二) —— 实现一个计数器

    目录结构 xff1a src span class token operator span span class token operator span App js span class token operator span index
  • VS2013未能正确加载的问题

    今天使用电脑 xff0c 关机重启时 xff0c WINDOWS提示 正在配置中 请勿关机 的提醒 xff0c 等重启后 xff0c 打开VS2013就提示了未加载成功的问题 xff0c 如下图 xff1a 我的解决方法是 xff1a 找到
  • 关于CString的拷贝问题

    我定义了一个结构体数组 xff0c 如图我想用它了保存全局变量 当我使用memcpy函数时 xff0c 结构体数组时的CString变量总是相互覆盖 xff0c 让我很无语 xff0c 但我用Append函数时 xff0c 结构体之间的CS

随机推荐