vue时间戳转日期格式,全局过滤器

1.函数封装es6

//时间戳转换
export function dateFilter(time) {    
  if (!time) { 
    // 当时间是null或者无效格式时咱们返回空        
    return ''    
  } else {        
    const date = new Date(time) // 时间戳为10位需*1000,时间戳为13位的话不需乘1000        
    const dateNumFun = (num) => num < 10 ? `0${num}` : num // 使用箭头函数和三目运算以及es6字符串的简单操做。由于只有一个操做不须要{} ,目的就是数字小于10,例如9那么就加上一个0,变成09,不然就返回自己。        // 这是es6的解构赋值。        
    const [Y, M, D, h, m, s] = [            
        date.getFullYear(),            
        dateNumFun(date.getMonth() + 1),            
        dateNumFun(date.getDate()),            
        dateNumFun(date.getHours()),            
        dateNumFun(date.getMinutes()),            
        dateNumFun(date.getSeconds())        
    ]        
    return `${Y}-${M}-${D} ${h}:${m}:${s}` // 必定要注意是反引号,不然无效。    
  }
}
//导出方法
export default { dateFilter }复制代码

2.在main.js里面引入,而且全局注册bash

import * as custom from '@/utils/filters'
// 全局注册
Object.keys(custom).forEach(key => { Vue.filter(key, custom[key])})复制代码

3.页面引用函数

<el-table-column align="center" label="时间">   
  <template slot-scope="scope">{{ scope.row.time | dateFilter }}
</template></el-table-column>复制代码

时间戳转日期

export function dateFilter (timestamp) {    
  function zero(time) {        
    return time < 10 ? '0' + time : time    
  }    
  var date = new Date(Number(timestamp) * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000    
  let Y = date.getFullYear() + '-';    
  let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';    
  let D = zero(date.getDate()) + ' ';    
  let h = zero(date.getHours()) + ':';    
  let m = zero(date.getMinutes()) + ':';    
  let s = zero(date.getSeconds());    
  return Y + M + D + h + m + s;
};复制代码
相关文章
相关标签/搜索