export function formatDate (date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1 , (date.getFullYear() + '' ).substr(4 - RegExp.$1 .length));
}
let o = {
' M+ ' : date.getMonth() + 1 ,
' d+ ' : date.getDate(),
' h+ ' : date.getHours(),
' m+ ' : date.getMinutes(),
' s+ ' : date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '' ;
fmt = fmt.replace(RegExp.$1 , (RegExp.$1 .length === 1 ) ? str : padLeftZero(str));
}
}
return fmt;
};
function padLeftZero (str) {
return (' 00 ' + str).substr(str.length);
};
以上部分可以封装到一个js里,在vue中放在公共的部分,当要调用时,在组件中
<template>
<!-- 过滤器 time 可以使后台得到的数据,循环出来的也行 -->
<div>{{time | formatDate}}</div>
<!-- 输出结果 -->
<!-- <div>2016 -07 -23 21 :52 </div> -->
</template>
<script>
import {formatDate} from ' ./common/date.js ' ;
export default {
filters: {
formatDate(time) {
var date = new Date(time);
return formatDate(date, 'yyyy-MM-dd hh:mm');
}
}
}
</script>
这样就可以直接用了