美文网首页
js 日期格式化 方法

js 日期格式化 方法

作者: 黄文博 | 来源:发表于2016-12-25 16:52 被阅读0次

    具体代码:

    var str = '2015-9-22 13:8:0';
      function DateFormat(str){
          var reg = /^(\d{4})[-/](\d{1,2})[-/](\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})$/g;
          var arr = [];
          str.replace(reg,function(){
            arr = [].slice.call(arguments);
              //类数组对象转换成数组对象才可以用slice方法
            arr = arr.slice(1,7);
          });
          var resStr = "{0}年{1}月{2}日 {3}时{4}分{5}秒";//声明格式化结果的字符串
          resStr = resStr.replace(/{(\d)+}/g,function(){
                var num = arguments[1];//因为有小分组所以arguments[1]是 0 1 2 3 4 5 每次小分组捕获的内容
                if(arr[num].length == 1) arr[num] = "0"+arr[num];//做判断补0
                return arr[num];
          })
          return resStr;//返回结果
      }
      console.log(DateFormat(str))
    
    传统方法
    方法1.用字符串分割 split 然后去各种拼接
    方法2.用日期函数 new Date()去转化 然后调用日期对象的各种方法最后去拼接。
    上面的方法是利用正则:

    1.正则的捕获 replace 方法
    2.大正则,小正则
    3.()正则分组
    4.arguments 类数组对象
    5.用replace的时候有分组和没有分组的情况 agruments[1]是不一样的。
    6.argumetns类数组对象转换成数组对象的方法 call

    补充:

    1.通过这个方法我们就可以改变reg 和 resStr来改变我们想要的结果
    2.可以把这个reg写的兼容性更多一些,支持一些多的格式。
    3.可以在String这个构造类的原型上扩充方法,使得所有的字符串都可以用这个方法。
    4.可以把resStr当做形参 传入需要的格式

    相关文章

      网友评论

          本文标题:js 日期格式化 方法

          本文链接:https://www.haomeiwen.com/subject/dmcdvttx.html