使用ligerui框架开发时,一般格式如下:
$("#div_id").ligerGrid({
url : fullPath + action_name,//请求路径
height : 400,
pageSize : 30,
enabledSort : false,//是否允许排序
isAllowHide : false,//是否允许隐藏,如果允许,将会出现在【显示/隐藏列右键菜单】
delayLoad : true,//初始化是是否不加载
columns : [{display : '编号',name : 'CODE',width : '11%'},
{display : '名称',name : 'NAME',width : '11%'},
{display : '数值',name : 'VALUE',width : '11%'},
{display : '创建时间',width : '12%',
//当需要对展示值做处理,则可以用render方法(单元格渲染器)
render : function(result) {
return new Date(result.DATE).Format('yyyy-MM-dd')
}
}]
});
其中,display为“表格列标题”,name为“表格列名”
render中的格式化日期方法为
Date.prototype.Format = function(fmt) {
var o = {
"M+" : this.getMonth() + 1, // 月份
"d+" : this.getDate(), // 日
"h+" : this.getHours(), // 小时
"m+" : this.getMinutes(), // 分
"s+" : this.getSeconds(), // 秒
"q+" : Math.floor((this.getMonth() + 3) / 3), // 季度
"S" : this.getMilliseconds()
// 毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for ( var k in o) {
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]): (("00" + o[k]).substr(("" + o[k]).length)));
}
return fmt;
}
RegExp.$1表示匹配的第一个值,y+匹配到的内容可能通过分组来取到,(y+)表示通过第一个分组取到。格式化日期时我们传入的日期格式为"yyyy-MM-dd",即/(y+)/.test(fmt)匹配到的第一个值就是"yyyy“,
因此RegExp.$1=yyyy,其length为4
假设date为 Mar 24,2016 12:29:27 PM
那么this.getFullYear()的值为2016,"2016".substr(4 - RegExp.$1.length)为2016,如果RegExp.$1为"yy",则取到的值为"16"
同理,new RegExp("(M+)").test(fmt),RegExp.$1为MM,当RegExp.$1.length为1时,即不满2位数字不补0,直接返回3
(("00" + o[k]).substr(("" + o[k]).length)))翻译就是("003").substr(("3").length),结果为"03"
另外,格式化日期还有第二种方法:
formatDateTime = function(date) {
var datetime = date.getFullYear()// "年"
+ "-"
+ ((date.getMonth() + 1) > 10 ? (date.getMonth() + 1) : "0" + (date.getMonth() + 1))// "月"
+ "-"
+ (date.getDate() < 10 ? "0" + date.getDate() : date.getDate())
+ " "
+ (date.getHours() < 10 ? "0" + date.getHours() : date.getHours())
+ ":"
+ (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes())
+ ":"
+ (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
return datetime;
}
此时render中调用该方法的语句为:
return formatDateTime(new Date(result.DATE));