当前位置: 首页 > news >正文

Element plus日期选择器从今天开始、时间跨度为3天

如图所示,你要实现Element plus日期选择从今天开始、时间跨度为3天:

template代码如下:

<el-form :model="form" :rules="rules" label-position="left" label-width="140px" ref="formRef"><el-form-item label="预发部署时间" prop="time"><el-date-pickerv-model="form.time"type="daterange"start-placeholder="开始日期"end-placeholder="结束日期"format="YYYY-MM-DD"value-format="YYYY-MM-DD"clearable:disabled-date="disabledDate"/></el-form-item>
</el-form>

disabled-date属性只能实现日期选择从今天开始,Element plus没有提供日期选择器限制第二个日期的能力,所以限制时间跨度为3天的需求,你要通过el-form的自定义校验函数来实现,时间跨度超过3天时直接在表单项下方提示报错信息。

<script setup>
import dayjs from 'dayjs'const form = reactive({time: []
})const rules = reactive({time: [{ required: true, validator: createDateValidator, trigger: "change" }]
})// 校验器:时间跨度不能超过 3 天
const createDateValidator = (rule, value, callback) => {if (!value || value.length !== 2) {return callback(new Error("请选择时间范围"))}const [start, end] = value// 这里要把结果+1,dayjs返回的结果会少1天const diffDays = dayjs(end).diff(dayjs(start), "day") + 1 // 直接算天数差if (diffDays > 3) {callback(new Error("时间跨度不能超过3天"))} else {callback()}
}// 禁用今天之前的日期
const disabledDate = (time) => {const today = new Date()today.setHours(0, 0, 0, 0) // 把时分秒清零return time.getTime() < today.getTime()
}
</script>

http://www.dtcms.com/a/350615.html

相关文章:

  • 【Android 16】Android W 的冻结机制框架层分析
  • 茶艺实训室建设方案:打造沉浸式茶文化教学空间
  • SAVITECH盛微先进SAVIAUDIO音频解码芯片方案与应用
  • Chromium 源码中的单例管理:LazyInstance 与 NoDestructor 的深入解析与实战对比
  • vscode(MSVC)进行c++开发的时,在debug时查看一个eigen数组内部的数值
  • uniapp安卓真机调试问题解决总结
  • redis----list详解
  • C# 相机内存复用(减少图像采集耗时)以及行数复用
  • 自定义树形构造器
  • python项目实战 3D宠物狗
  • 关于传统的JavaWeb(Servlet+Mybatis)项目部署Tomcat后的跨域问题解决方案
  • MM-2025 | 北航双无人机协作助力视觉语言导航!AeroDuo:基于空中双机系统的无人机视觉语言导航
  • 简述mysql中索引类型有哪些,以及对数据库的性能的影响?
  • JBL音响代理——河北正娱科技的声学精品工程
  • 网络编程-HTTP
  • 插曲 - 为什么光速不变
  • 【代码】洛谷P3391 【模板】文艺平衡树(FHQ Treap)
  • 低质量视频变高清AI:告别模糊,重现清晰画质
  • chrome插件开发(二)
  • vue家教预约平台设计与实现(代码+数据库+LW)
  • 驱动-热插拔-Netlink广播监听内核状态
  • HarmonyOS实战(DevEco AI篇)—CodeGenie + DeepSeek构建鸿蒙开发的超级外挂工作流
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十九)子窗口
  • 您的连接不是私密连接问题解决
  • 借Copilot之力,实现办公效率的跃升
  • 数据库原理及应用_数据库基础_第2章关系数据库标准语言SQL_索引和视图
  • 软件使用教程(二):VS Code的Copilot、Git设置与使用
  • 复制和下载飞书文档的方法教程
  • Unity开发如何实现换装技术
  • Ubuntu 14.10 i386桌面版安装教程(U盘启动详细步骤-附安装包下载)​