在 vue项目中 时间戳转换为日期

方法一:

// 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);
};

真是太菜了,我居然看不懂人家的代码

在这大概解释一下:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RegExp.$1...$9属性用于返回正则表达式模式中某个子表达式匹配的文本。

正则表达式中每个小括号内的部分表达式就是一个子表达式。

该属性是RegExp全局对象的一个只读属性,所有主流浏览器均支持该属性。

语法

RegExp.$n

n的值介于 [1, 9] 之间,表示第n个子表达式所匹配的文本内容。例如,RegExp.$1表示第一个子表达式所匹配的文本内容。

返回值

RegExp.$1...$9属性的值为String类型,返回上一次正则表达式匹配中,第n个子表达式所匹配的文本。

虽然正则表达式模式中的小括号可以有任意多个,但是此属性只保存最前面的9个匹配文本。

扫描二维码关注公众号,回复: 6137014 查看本文章

注意:这里的RegExp是全局对象,RegExp.$1...$9是全局属性。当执行任意正则表达式匹配操作时,JavaScript会自动更新全局对象RegExp上的全局属性,用以存储此次正则表达式模式的匹配结果。当再次执行正则表达式匹配时,RegExp上的全局属性又会更新,覆盖掉之前的存储数据,以反映本次正则表达式模式的匹配结果。

示例&说明

var str = "X98Y87Z65";
// 三个数字部分加了小括号,表示子表达式
var reg = /^X(\d+)Y(\d+)Z(\d+)$/;
reg.test(str); // 此处使用exec()等其他正则表达式的匹配方法也可,下同
document.writeln(RegExp.$1); // 98
document.writeln(RegExp.$2); // 87
document.writeln(RegExp.$3); // 65

str = '<a href="http://www.365mini.com/" title="首页" target="_blank">CodePlayer</a>';
// 提取URL
reg = /<a\s[^>]*href="([^">]+)"[^>]*>/;
reg.exec(str);
document.writeln(RegExp.$1); // http://www.365mini.com/

------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 

http://www.cnblogs.com/study-everyday/p/7426862.html 在这放一遍文章的连接 是关于正则表达式的回溯的,作者真是大佬。

调用:
<template>
    <!-- time时间戳 -->
    <div>{{time | formatDate}}</div>
    <!-- 输出结果 -->
    <!-- <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');
        }
    }
}

 方法二:

就是我们比较常见的js 方法:

 filters: {
      formatDate: function (value) {
        let date = new Date(value);
        let y = date.getFullYear();
        let MM = date.getMonth() + 1;
        MM = MM < 10 ? ('0' + MM) : MM;
        let d = date.getDate();
        d = d < 10 ? ('0' + d) : d;
        let h = date.getHours();
        h = h < 10 ? ('0' + h) : h;
        let m = date.getMinutes();
        m = m < 10 ? ('0' + m) : m;
        let s = date.getSeconds();
        s = s < 10 ? ('0' + s) : s;
        return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
      }
    }
  }

猜你喜欢

转载自blog.csdn.net/weixin_43844392/article/details/89554250
今日推荐