layui.util.toDateString是唯一稳定可用的日期格式化函数,接收时间戳或Date对象及格式模板,不解析字符串,table渲染需用templet调用,laydate.format仅控制面板显示。

直接用 layui.util.toDateString,别碰 laydate.format——它只在 laydate 实例内部用,对外不暴露,调用会报 undefined。
layui.util.toDateString 是唯一稳定可用的格式化函数
这个工具函数专为前端日期字符串转换设计,接收两个参数:时间戳(毫秒)或 Date 对象 + 格式模板字符串。它不依赖 laydate 实例,也不需要先渲染控件。
- 后台返回长整型时间戳(如
1759328760000):直接传入即可layui.util.toDateString(1759328760000, 'yyyy-MM-dd HH:mm:ss')→"2026-10-01 14:26:00" - 已有
Date对象:同样支持layui.util.toDateString(new Date(), 'yyyy-MM-dd HH:mm:ss') - 注意:传字符串会失败,比如
"2026-10-01"或"2026/10/01",它不解析字符串,只认数字时间戳或Date实例
table 中渲染日期字段必须用 templet + toDateString
layui table 不自动识别时间戳,字段值是数字时显示为一长串毫秒数。必须显式用 templet 调用 toDateString。
- 错误写法:
{ field: 'create_time', title: '创建时间' }→ 显示1759328760000 - 正确写法:
{ field: 'create_time', title: '创建时间', templet: '<div>{{layui.util.toDateString(d.create_time, "yyyy-MM-dd HH:mm:ss")}}</div>' } - 如果字段名不是
create_time,请替换成你实际的 JSON key,比如d.sbj_start、d.updateTime - 模板里双大括号是 layui 的模板语法,不能漏;引号要成对,推荐外层单引号、内层双引号
laydate.render 里 format 只控制面板和输入框显示,不负责格式化输出
format: 'yyyy-MM-dd HH:mm:ss' 这个配置只影响用户看到的样式和最终填入 input 的字符串内容,它不会把后端时间戳转成字符串——那是你自己的事。
- 如果你把时间戳直接塞进
value:value: 1759328760000→ laydate 会静默忽略,输入框为空 - 正确做法:先转字符串再传,比如
value: layui.util.toDateString(1759328760000, 'yyyy-MM-dd HH:mm:ss') - 或者更稳妥:传
Date对象,让 laydate 自己格式化:value: new Date(1759328760000) - 注意:
toDateString返回的是字符串,传给value没问题;但若你后续要拿这个值做计算,记得再转回时间戳或Date
最容易被忽略的是:toDateString 对非法时间戳(如 null、undefined、非数字字符串)会默认返回当前时间,而不是报错或留空。上线前务必用真实后端数据测试边界情况。


















