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

el-date-picker ,自定义输入数字自动转换显示yyyy-mm-dd HH:mm:ss格式

/** * 日期时间输入框格式化(按你的逻辑) * 支持:20160908120912 → 2016-09-08 12:09:12 * 支持:实时格式化 */ export function handleDateTimeKeydown(e, formData, field) { // 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 // 2. 异步格式化 setTimeout(() => { const input = e.target let val = input.value.replace(/\D/g, '') // 只留数字 if (val.length < 8) return // 3. 拆分日期 + 时间 const date = val.slice(0, 8) const time = val.slice(8, 14) // 4. 格式化日期 const y = date.slice(0, 4) const m = date.slice(4, 6) const d = date.slice(6, 8) let dateStr = `${y}-${m}-${d}` // 5. 格式化时间(完全按你的逻辑) 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 // 输满14位 → 同步到 v-model if (val.length === 14 && formData && field) { formData[field] = final } }, 0) }

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

<el-date-picker v-model="formData.startTime" type="datetime" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" placeholder="请选择时间" @keydown="(e) => handleDateTimeKeydown(e, formData, 'startTime')" />
http://www.jsqmd.com/news/622672/

相关文章:

  • 告别重复操作:AzurLaneAutoScript让你的碧蓝航线自动运行
  • Wan2.2-I2V-A14B网络协议分析:图像生成请求的完整生命周期
  • 人工外呼成本高、效率低?是时候试试AI语音外呼了
  • Kook Zimage真实幻想Turbo快速部署教程:24G显存跑满1024×1024高清输出
  • Qwen3-4B-Instruct惊艳效果:根据专利摘要生成技术背景+创新点+权利要求草案
  • 告别手动同步!用Karmada实现跨集群应用一键分发(附PropagationPolicy配置详解)
  • 小白也能懂的语音情感分析:Emotion2Vec+ Large快速入门教程
  • StructBERT中文情感模型WebUI定制:增加‘敏感词拦截’前置校验模块
  • 公安 / 交通 / 仓储全场景适配:镜像视界 AI 镜像孪生,落地即见效
  • 如何永久保存微信聊天记录:WeChatExporter完整备份指南
  • LeetCode 69. x 的平方根:两种解法详解
  • 生产企业进销存软件推荐,易特两款产品精准适配不同规模
  • CoPaw跨语言能力测评:中英日等多语言翻译与创作
  • YOLO12惊艳效果展示:COCO 80类高精度检测结果可视化对比图集
  • mysql如何对比备份数据与线上数据_编写自动化校验脚本
  • 如何通过手机号快速找回QQ号:开源工具的3分钟解决方案
  • MediaCreationTool.bat:三分钟完成Windows系统部署的终极神器
  • 深度解析AMD Ryzen调试神器:SMUDebugTool全方位性能调优实战指南
  • 揭秘 roop-unleashed:5个颠覆性功能重塑AI换脸技术
  • Redis:延迟双删的适用边界与落地细节日
  • 3种实战方案:老旧电脑安装Windows 11终极指南
  • GetQzonehistory:你的QQ空间数字记忆终极备份方案
  • 基于WebSocket直连的高效全平台直播弹幕采集技术方案
  • GitHub汉化插件终极指南:如何选择最适合你的版本
  • 人工智能入门必看:千问3.5-9B部署与核心概念图解教程
  • Pixel Epic · Wisdom Terminal 构建AI Agent:自主任务规划与执行框架
  • Next.js从入门到实战保姆级教程:图像、字体与媒体优化
  • ThinkPad风扇控制终极指南:TPFanCtrl2完整配置与高级调校
  • Sunshine流媒体服务器故障排除:5步解决编码器、网络和权限问题
  • WorkshopDL终极指南:如何免费下载1000+款Steam创意工坊模组