• 如何用正则匹配时间格式


    在实际项目需求中,如评论时间,上传时间等经常需要用到处理时间戳的问题,后端传给了我们一串数字的时间戳,那么如何利用正则快速的去处理它,得到我们想要的格式呢?

    如后端给到的是1469281964000,需要转成成yyyy-MM-dd hh:mm格式

     function formatDate(date,fmt){
        //替换年,匹配到以y开头的一个或者多个字符串
        //RegExp.$1 匹配到括号里的值,然后转化成字符串。然后截取字符串控制start,可能结果是2016或者16(4改为2的时候)
        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){
            //遍历对象,判断是否符合格式,符合的话,就去替换fmt对应位置(匹配到的)
            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);
    }

    最终我们将会得到的结果是 2016-07-23 21:52 

    可以把该函数单独封装成一个js文件模块,输出到其他模块中使用,需要注意的是:函数的输出直接是export 而不像一般的export default,如export function formatDate(date,fmt),并且引用时候需要需要拿花括号包起来import {formatDate} from '/date.js' 。

  • 相关阅读:
    台式机安装无线网卡建立共享操作
    Mean shift
    拉格朗日乘子法
    凸集和凸函数
    图像插值法
    高斯平滑
    gamma校正
    SIFT feature
    VS2013+Win10+opencv3.0配置(包括opencv2.4.10版本)
    caffe添加自己编写的Python层
  • 原文地址:https://www.cnblogs.com/hjj2ldq/p/7566121.html
Copyright © 2020-2023  润新知