element-ui中el-date-picker时间选择器限制选择7天内数据、获取某一天0点或23:59:59
。
涉及到的知识点:获取某一天的0点和23:59:59
废话不多说,上代码:
<template> <div> <el-date-picker v-model="timeValue" type="datetimerange" :picker-options="pickerOptions" :default-time="defaultTime" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :value-format="valueFormat" :format="format" popper-class="cusDatetimer" align="right"> </el-date-picker> </div> </template> <script> export default { data(){ return { timeValue:[],//绑定时间的值 defaultTime:['00:00:00', '23:59:59'],//选择日期后的默认时间 valueFormat:"yyyy-MM-dd HH:mm:ss",//绑定值的格式 format:"yyyy/MM/dd HH:mm:ss",//日期显示格式 pickerOptions:{//配置项 shortcuts: [{//设置快件选项 text: "最近7天", onClick: picker => { const end = new Date(); const start = this.getBeforeDate(new Date(), 6); picker.$emit("pick", [start, end]); } }, { text: "最近30天", onClick: picker => { const end = new Date(); const start = this.getBeforeDate(new Date(), 30); picker.$emit("pick", [start, end]); } }, { text: "最近90天", onClick: picker => { const end = new Date(); const start = this.getBeforeDate(new Date(), 90); picker.$emit("pick", [start, end]); } } ], // 监听每一次选择日期的事件 onPick: ({ maxDate, minDate }) => {//最大时间 最小时间 this.choiceDate = minDate.getTime();//当选一个日期时 就是最小日期 // // 如何你选择了两个日期了,就把那个变量置空 if (maxDate) this.choiceDate = '' }, // 设置禁用状态 time是日历上的每一个时间 disabledDate: time => { // 如何选择了一个日期 if (this.choiceDate) { // 7天的时间戳 const one = 6 * 24 * 3600 * 1000;//这里如果乘以7相当于限制8天以内的 所以乘以6 // 当前日期 - one = 7天之前 const minTime = this.choiceDate - one; // 当前日期 + one = 7天之后 const maxTime = this.choiceDate + one; return ( time.getTime() < minTime || time.getTime() > maxTime || // 限制不能选择今天及以后 time.getTime() > this.getDayStartOrEnd(new Date(),"end") ) } else { // 如果没有选择日期,就要限制不能选择今天及以后 return time.getTime() > this.getDayStartOrEnd(new Date(),"end"); } } } } }, methods:{ //返回几天前的毫秒数 getBeforeDate(date = new Date(), days = 7) { date.setTime(date.getTime() - 3600 * 1000 * 24 * days); return date; }, // 获取当天0点或23:59:59 getDayStartOrEnd(time,type = "start"){//end 返回毫秒数 if(type == "start"){ return new Date(time).setHours(0,0,0,0);//hourse、min、sec、millisec }else{ return new Date(time).setHours(23,59,59,999); } } } } </script> <style lang="scss"> </style>
。
分类:
javascript
, element-UI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2020-02-27 小结一下,登录如何判断不同标签页登录两个账号的问题
2020-02-27 edge浏览器两个标签页localStorage不同步,解决办法
2020-02-27 关闭浏览器窗口的兼容性写法