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;
})
相關文章
相關標籤/搜索