<!-- value format is 13-bit unix timestamp -->
<!-- 10-bit unix timestamp can be converted to 13-bit format by value*1000 -->
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); };
Save the above code as date.js and put it in your public js folder.
In your component that needs to format timestamps use like this:
<template> <!-- The filter time can make the data obtained in the background, and it can also be looped out --> <div>{{time | formatDate}}</div> <!-- output result--> <!-- <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>