ligerUi 格式化日期

使用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));



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值