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

el-date-picker ,自定义输入数字自动转换显示yyyy-mm-dd HH:mm:ss格式 【仅双日历 datetimerange专用】

实现在使用el-date-picker的 type="datetimerange"的情况下 在输入框进行自定义输入内容转换为时间格式

如输入20160123120000转换为2016-01-12 12:00:00

// 【仅双日历 datetimerange】 专用 export function handleDateTimeInput( e: KeyboardEvent, formData: Record<string, any>, field: string ) { // 1. 只允许数字 + 控制键 const isNumber = /^[0-9]$/.test(e.key) const isControl = ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab'].includes(e.key) if (!isNumber && !isControl) { e.preventDefault() return } if (isControl) return setTimeout(() => { const input = e.target as HTMLInputElement if (!input) return let val = input.value.replace(/\D/g, '') if (val.length < 8) return const date = val.slice(0, 8) const time = val.slice(8, 14) const y = date.slice(0, 4) const m = date.slice(4, 6) const d = date.slice(6, 8) let dateStr = `${y}-${m}-${d}` let timeStr = '' if (time.length >= 1) timeStr = time.slice(0, 1) if (time.length >= 2) timeStr = time.slice(0, 2) if (time.length >= 3) timeStr = time.slice(0, 2) + ':' + time.slice(2, 3) if (time.length >= 4) timeStr = time.slice(0, 2) + ':' + time.slice(2, 4) if (time.length >= 5) timeStr = time.slice(0, 2) + ':' + time.slice(2, 4) + ':' + time.slice(4, 5) if (time.length >= 6) timeStr = time.slice(0, 2) + ':' + time.slice(2, 4) + ':' + time.slice(4, 6) let final = dateStr if (timeStr) final += ' ' + timeStr input.value = final input.dispatchEvent(new Event('input')) if (val.length === 14) { const formattedDate = dayjs(final).format('YYYY-MM-DD HH:mm:ss') const isStart = input.placeholder.includes('开始') if (isStart) { formData[field][0] = formattedDate } else { formData[field][1] = formattedDate } input.dispatchEvent(new Event('change')) } }, 0) }

使用方法:使用@keydown来进行触发

<el-date-picker v-model="form.effectiveTime" type="datetimerange" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" style="width: 360px" @keydown="handleDateTimeInput($event, form, 'effectiveTime')" />
http://www.jsqmd.com/news/648097/

相关文章:

  • Java-Study
  • Cursor Pro功能完整解锁指南:突破AI编程助手的限制
  • 别再乱用电容了!手把手教你给STM32电源设计选对电解电容和贴片电容
  • CANoe上位机自动化测试:程控电源与RS232串口通信的模块化设计
  • 21_命令模式
  • gRPC 核心概念、架构与生命周期
  • 超元力LED飞行影院:沉浸式科技与视听体验的双重探索
  • 跨平台多模态对齐难?SITS2026案例实证:3类异构数据融合方案,准确率提升42.7%!
  • 实验十七:验证路由器既隔离碰撞域也隔离广播域
  • 在 ADT 里把当前焦点对象直接做成可点击清单,基于 HTML 结果的 Focused Objects Display IDE Action 实战
  • 020、高性能Python:GIL、多进程与C扩展
  • 六分钟穿越天地:超元力LED飞行影院的沉浸式魅力
  • 算法基础应用精讲【人工智能】-基于稀疏Transformer的大规模文本生成系统
  • 毕业论文排版救星!Paperxie 一键搞定 4000 + 高校格式,本科生再也不用熬夜改格式了
  • 2026年评价高的一次性可降解餐具/一次性玉米淀粉餐具长期合作厂家推荐 - 品牌宣传支持者
  • 22_备忘录模式
  • mysql如何配置事务隔离级别_mysql isolation level修改方法
  • 《XQuery 参考手册》
  • 前端八股Vue---生命周期函数
  • 别再只会调PWM占空比了!手把手教你用Linux thermal子系统自动控制风扇转速
  • sdut-软件测试-黑盒测试2
  • 一套在线监测系统,轻松管好16个变压器室
  • 微信小程序里用H5预览PDF,我为什么放弃了原生组件选了pdf.min.js?
  • S32K144外部中断实战:用按键控制LED,手把手教你避开中断标志位清除的坑
  • 汽车c语言是什么?
  • 精通 Agent Skill:构建高效 AI 技能的完整指南
  • Zotero Better Notes:如何用3个步骤构建你的学术知识网络?
  • 2026年安卓APP安全加固公司哪家好?从技术、性能到合规的深度选型指南
  • 2026年3月老板桌源头厂家推荐,老板桌/电动老板椅/新中式实木家具/智能办公椅/休闲办公沙发,老板桌厂家哪个好 - 品牌推荐师
  • 揭秘多模态餐饮推荐系统落地难题:从BERT-Vision融合到实时推理延迟压降至89ms的实战路径