日期格式转换

将xx-xx-xx xx:xx:xx
或者xx/xx/xx xx:xx:xx
或xx-xx-xx xx-xx-xx格式的时间
转换为中文的xx年xx月xx日 xx时xx分xx秒

今天的自己写的三种,个人最满意的是第三种,不过第二种好像最简单粗暴
这只是初学者的写法,希望有大神指点更简单高效的方法
第一种

var str = '2018-9-10 21:18:25';
    var str = str.replace(/-/,function(){
        return '年'
    });
    str = str.replace(/-/,function(){
        return '月'
    });
    str = str.replace(/ /,function(){
        return '日 '
    });
    str = str.replace(/:/,function(){
        return '时'
    });
    str = str.replace(/:/,function(){
        return '分'
    });
    str = str.replace(/$/,function(){
        return '秒'
    });
    console.log(str);

第二种

var str = '2018/9/10 21:18:25';
    str = str.replace(/(\/|-)/, '年');
    str = str.replace(/(\/|-)/, '月');
    str = str.replace(' ','日 ');
    str = str.replace(/(:|-)/,'时');
    str = str.replace(/(:|-)/,'分');
    str = str.replace(/$/,'秒');
    console.log(str);

第三种

function dateReplace (str){
    function zero(n){
        if(n<10) return '0'+n;
        return n;
    }
    reg = /(\d{4})(-|\/)(\d{2}|\d)(-|\/)(\d{2}|\d)( )
              (\d{2}|\d)(:)(\d{2}|\d)(:)(\d{2}|\d)/g;
          //代码折行只是为了方便阅读  
    var cur = reg.exec(str);
    var temp = cur[1]+'年'+zero(cur[3])+'月'+zero(cur[5])+'日'+cur[6]
              +zero(cur[7])+ '时'+zero(cur[9])+'分'+zero(cur[11])+'秒';
          //代码折行只是为了方便阅读  
    return temp;
}
var str = '2018/9/10 21:18:25';
console.log(dateReplace(str));
// 例子
var str = '2018-11/29 3:10:55';
console.log(dateReplace(str));

你可能感兴趣的:(日期格式转换)