Vue2 自定义过滤器

自定义时间过滤器javascript

// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 能够用 1-2 个占位符, 
// 年(y)能够用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// dateformat("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// dateformat("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Vue.filter('dateformat', function(dt, fmt='yyyy-MM-dd hh:mm:ss') {
	if (!dt || dt=='' || dt == 0) {
		return '';
	}
	dt = new Date(dt*1000);
	var o = {
		"M+" : dt.getMonth()+1,
		"d+" : dt.getDate(),
		"h+" : dt.getHours()%12 == 0 ? 12 : dt.getHours()%12,
		"H+" : dt.getHours(),
		"m+" : dt.getMinutes(),
		"s+" : dt.getSeconds(),
		"q+" : Math.floor((dt.getMonth()+3)/3),
		"S" : dt.getMilliseconds()
	};
	if (/(y+)/.test(fmt)){
		fmt = fmt.replace(RegExp.$1, (dt.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;
})
相关文章
相关标签/搜索