Vue手写时间过滤器

2020-11-06  本文已影响0人  菜的只能打代码

使用方法: <td  v-cloak>{{item.date | format('yyyy-MM-dd hh:mm:ss')}}</td> 


定义:

  Vue.filter('format', function(value, arg) {

      function dateFormat(date, format) {

        if (typeof date === "string") {

          var mts = date.match(/(\/Date\((\d+)\)\/)/);

          if (mts && mts.length >= 3) {

            date = parseInt(mts[2]);

          }

        }

        date = new Date(date);

        if (!date || date.toUTCString() == "Invalid Date") {

          return "";

        }

        var map = {

          "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() //毫秒 

        };

        format = format.replace(/([yMdhmsqS])+/g, function(all, t) {

          var v = map[t];

          if (v !== undefined) {

            if (all.length > 1) {

              v = '0' + v;

              v = v.substr(v.length - 2);

            }

            return v;

          } else if (t === 'y') {

            return (date.getFullYear() + '').substr(4 - all.length);

          }

          return all;

        });

        return format;

      }

      return dateFormat(value, arg);

    })

上一篇下一篇

猜你喜欢

热点阅读