hjj2ldq

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

如后端给到的是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\' 。

分类:

技术点:

相关文章:

  • 2022-01-12
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
猜你喜欢
  • 2021-12-27
  • 2021-11-21
  • 2021-07-18
  • 2021-12-27
  • 2022-01-09
  • 2021-11-17
  • 2021-12-10
相关资源
相似解决方案