vue-过滤器-js日期格式转换(时间戳转 日期格式 2017-11-01)
我是在vue项目中应用的,要是不在vue项目中直接 引用函数本身就好。
创建js文件 format.js
代码:
export function formatDate (date, fmt) { if (/(y+)/.test(fmt)) { fmt = fmt.replace( RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length) ); } var o = { '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() }; // 月份 // 日 // 小时 // 分 // 秒 // 季度 // 毫秒 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 : ('00' + str).substr(str.length) ); } } return fmt; }
在需要的页面引用:
import { formatDate } from '@/common/js/format.js';
@符号是在webpack.base.conf配置的别名,指向路径src
代码:
resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'vue$': 'vue/dist/vue.esm.js', '@': resolve('src'), } },
调用时,直接在所用到的vue实例中创建过滤器:
filters: { formatDate (timestamp) { var data = new Date(timestamp); return formatDate(data, 'yyyy-MM-dd'); } }
大功告成,dom部分直接使用就可以了
<span>{{timestamp | formatDate}}</span>
显示: