vue2.0 自定义日期时间过滤器

发布于 2019-11-06 作者 风铃 165次 浏览 版块 前端

这篇文章主要为大家详细介绍了vue2.0 自定义日期时间过滤器,具有一定的参考价值,可以用来参考一下。

 

方法一:

 

代码如下:


    // template
    {{a | data}}
    //script
    data:{
      a: Date.now()
    }
    filters: {
      data:function (input) {
        var d = new Date(input);
        var year = d.getFullYear();
        var month = d.getMonth() + 1;
        var day = d.getDate() <10 ? '0' + d.getDate() : '' + d.getDate();
        var hour = d.getHours();
        var minutes = d.getMinutes();
        var seconds = d.getSeconds();
        return year+ '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds;
      }

 

方法二: 正则

 

代码如下:


    // template
    {{date | formatDate}}
    //script
    import {formatDate} from '../../common/js/date'
    filters: {
     formatDate (time) {
      let date = new Date(time)
      return formatDate(date, 'yyyy-MM-dd hh:mm')
     }
    }

代码如下:


    //date.js
    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)
    }
收藏
暂无回复