function dateFormat(date,format){
if(typeof date=="string"){
var mts=date.match(/(\/Date\((\d+)\)\/)/);
if(mts&&mts.length>=3){
date=parseInt(mts[2]);
}
}
date=new Date(date);
if(!date||date.toUTCString()=="Invalid Date"){
return "";
}
var map={
"M":date.getMonth()+1,
"d":date.getDate(),
"h":date.getHours(),
"m":date.getMinutes(),
"s":date.getSeconds(),
"q":Math.floor((date.getMonth()+3)/3),//季度
"S":date.getMilliseconds()//毫秒
};
format=format.replace(/([yMdhmsqS])+/g,function(all,t){
var v=map[t];
if(v!==undefined){
if(all.length>1){
v="0"+v;
v=v.substr(v.length-2);
}
return v;
}else if(t==="y"){
return (date.getFullYear()+"").substr(4-all.length);
}
return all;
});
return format;
}
如何使用:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<div>{{date|format("yyyy-MM-dd")}}</div>
</div>
<script>
Vue.filter("format",function(val,arg){
function dateFormat(date,format){
if(typeof date=="string"){
var mts=date.match(/(\/Date\((\d+)\)\/)/);
if(mts&&mts.length>=3){
date=parseInt(mts[2]);
}
}
date=new Date(date);
if(!date||date.toUTCString()=="Invalid Date"){
return "";
}
var map={
"M":date.getMonth()+1,
"d":date.getDate(),
"h":date.getHours(),
"m":date.getMinutes(),
"s":date.getSeconds(),
"q":Math.floor((date.getMonth()+3)/3),//季度
"S":date.getMilliseconds()//毫秒
};
format=format.replace(/([yMdhmsqS])+/g,function(all,t){
var v=map[t];
if(v!==undefined){
if(all.length>1){
v="0"+v;
v=v.substr(v.length-2);
}
return v;
}else if(t==="y"){
return (date.getFullYear()+"").substr(4-all.length);
}
return all;
});
return format;
}
return dateFormat(val,arg);
})
var vm =new Vue({
el:"#app",
data:{
date:new Date()
}
});
</script>
</body>
</html>