layui数据表格时间戳转换为时间格式的⽅法
道家有云:授之于鱼不如授之于渔,授⼈以鱼只救⼀时之急,授⼈以渔则可解⼀⽣之需。
基于这个出发点,《layui 从鱼到渔》的系列教程正式启动,我将结合⼤家的⽇常所需,不定期分享 layui 的“捕鱼”之道,算是对⽂档的补充,后续也将收录在案。为了能快速阅读,篇幅都不会太长。
⽽你是否原意成为⼀枚渔⼈,⽽⾮吃鱼的路⼈,全由你⾃⼰了。
⾸先带来的,是关于 table 模块中的⾃定义模板的分享。很多时候,table 并不想单调地呈现数据库存储的值,这时候就需要⽤到⾃定义模板的功能,layui 的⽂档也有相关介绍:。但这项功能由于涉及到 laytpl 语法,所以往往被许多⼈忽略。⽽今天我希望通过⼀个简单的例⼦:时间戳转换为⽇期字符,来引导⼤家勇敢去使⽤。
⼀. 编写公共⽅法,这⾥以赋值到 laytpl 对象为例
//时间戳的处理
DateString = function(d, format){
var date = new Date(d || new Date())
,ymd = [
this.FullYear(), 4)
,this.Month() + 1)
unix时间戳转换日期格式,this.Date())
]
,hms = [
this.Hours())
,this.Minutes())
,this.Seconds())
];
format = format || 'yyyy-MM-dd HH:mm:ss';
place(/yyyy/g, ymd[0])
.replace(/MM/g, ymd[1])
.replace(/dd/g, ymd[2])
.replace(/HH/g, hms[0])
.replace(/mm/g, hms[1])
.replace(/ss/g, hms[2]);
};
//数字前置补零
layui.laytpl.digit = function(num, length, end){
var str = '';
num = String(num);
length = length || 2;
for(var i = num.length; i < length; i++){
str += '0';
}
return num < Math.pow(10, length) ? str + (num|0) : num;
};
讲解:
1) 之所以将⽅法暴露给 laytpl 对象,是便于模板能读取到,因为 laytpl 模板是在⼀个封闭的函数作⽤域中进⾏解析的,它只能读取到模板内的⽅法/属性和全局⽅法/属性。
2) DateString(d, format) ⽅法接受两个参数。其中 d 可以是⽇期对象,也可以是毫秒数。format 是⽇期字符的格式,你可以随意定义,如:yyyy年MM⽉dd⽇
⼆. 在列模板中调⽤时间戳的处理⽅法
elem: '#demo'
,cols: [[
{field: 'createTime', title: '创建时间', templet: '<div>{{ DateString(d.time) }}</div>'}
]]
});
讲解:
d.time 中的 time 即是你接⼝返回的字段,如果是 unix 时间戳,这⾥记得要 d.time*1000,如果是毫秒数,这⾥直接传 d.time 即可。本篇也只是抛砖引⽟,业务中更多丰富的呈现,还需要你⾃⾏发散。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论