element-plus DateTimePicker日期选择器,限制指定日期和时间不可选择

news/2024/7/10 1:10:34 标签: javascript, vue.js, vue, 前端

element-plus日期选择器,在指定日期时间前不可选择。
限制日期选择,使用disabled-date
限制小时选择,使用disabled-hours
限制分钟选择,使用disabled-minutes
限制毫秒选择,使用disabled-seconds

指定日期当天的时间有限制:
在这里插入图片描述
其他日期的时间无限制:
在这里插入图片描述

全部代码:

      <el-date-picker
          v-model="state.value"
          type="datetime"
          :default-time="new Date()"
          :disabled-date="disabledDateFn"
          :disabled-hours="disabledHours"
          :disabled-minutes="disabledMinutes"
          :disabled-seconds="disabledSeconds"
          value-format="YYYY-MM-DD HH:mm:ss"
          :placeholder="请选择" />
javascript">const state = reactibe({
   value:'',
  lastDate:'2023-10-27 12:20:30'
})

// 限制日期
const disabledDateFn = (date) => {
  if (date.getTime() < new Date(state.lastDate).getTime() - 8.64e7) {
    return true;
  }
  return false;
};

// 限制小时
const disabledHours = () => {
  const a = [];
  //选中的年月日
  const value = dayjs(state.value).format('YYYY-MM-DD');
  //指定日期的年月日
  const lastDate = dayjs(state.lastDate).format('YYYY-MM-DD');
  // 选中日期不等于指定日期,不限制
  if (value !==lastDate) {
    return;
  }
  
  for (let i = 0; i < 24; i++) {
    if (new Date(state.lastDate).getHours() > i) {
      a.push(i);
    }
  }
  return a;
};

// 限制分钟
const disabledMinutes = () => {
  const a = [];
  const value = dayjs(state.value).format('YYYY-MM-DD');
  const lastDate = dayjs(state.lastDate).format('YYYY-MM-DD');
   if (value !==lastDate) { {
    return;
  }
  for (let i = 0; i < 60; i++) {
    if (new Date(state.lastDate).getMinutes() > i) {
      a.push(i);
    }
  }
  return a;
};

// 限制毫秒
const disabledSeconds = () => {
  const a = [];
  const value = dayjs(state.value).format('YYYY-MM-DD');
  const lastDate = dayjs(state.lastDate).format('YYYY-MM-DD');
 if (value !==lastDate){
    return;
  }
  for (let i = 0; i < 60; i++) {
    if (new Date(state.lastDate).getSeconds() > i) {
      a.push(i);
    }
  }
  return a;
};

注意:选择面板上的日期后,v-model绑定的值就会更新,而不是点击确认按钮后!!!


http://www.niftyadmin.cn/n/5135650.html

相关文章

数据结构例题代码及其讲解-图

01 图的邻接矩阵存储结构定义。 顶点表、边&#xff08;二维数组&#xff09;、顶点数量和边的数量 typedef struct MGraph {char Vex[MaxSize];//顶点(vertex)中数据int Edge[MaxSize][MaxSize];//边int vexnum, arcnum;//顶点数量和边的数量 }MGraph;图中涉及到.和->的区…

vue3获取页面路径

import { useRouter, useRoute } from vue-routerconst router useRouter()router.currentRoute.value.path // 页面路径

搭建高可用MinIO集群

配置服务器 cat >> /etc/sysctl.conf <<- EOF net.ipv4.ip_forward1 vm.max_map_count655360 EOF# 查看配置 sysctl -p配置docker 在第一台服务器192.168.2.4下运行 docker run -d --name minio-4 \ --restartalways \ --nethost \ -v /data/n4/export1:/data1…

智能分析视频平台EasyCVR地图功能出现异常该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

macOS M1安装wxPython报错‘tiff.h‘ file not found的解决方法

macOS12.6.6 M1安装wxPython失败&#xff1a; 报错如下&#xff1a; imagtiff.cpp:37:14: fatal error: tiff.h file not found解决办法&#xff1a; 下载源文件重新编译&#xff08;很快&#xff0c;5分钟全部搞定&#xff09;&#xff0c;分三步走&#xff1a; 第一步&…

HarmonyOS鸿蒙原生应用开发设计- 音效库

HarmonyOS设计文档中&#xff0c;为大家提供了独特的音效库&#xff0c;开发者可以根据需要直接引用。 音效库可以分为拟物音效、系统音效、特殊效果音。具体分为提示音、UI交互音、来电铃声、闹铃、拟物音效、乐器、科幻等。 整体分类 开发者直接使用官方提供的音效库内容&a…

app分发下载

App分发下载平台是指提供应用程序上传、审核、测试、分发和下载服务的平台。开发者可以将自己的应用程序上传到平台上&#xff0c;平台会将应用程序存储在自己的服务器上&#xff0c;并提供下载链接。用户可以通过这些下载链接下载应用程序&#xff0c;而开发者可以在平台上管理…

paddle模型定义

import paddle import paddle.nn as nn # #方法1、内置的模型 # print(飞桨框架内置模型&#xff1a;, paddle.vision.models.__all__) # # 模型组网并初始化网络 # lenet paddle.vision.models.LeNet(num_classes10) # print(type(lenet)) # # 可视化模型组网结构和参数 # pa…