JavaScript日期格式化

来源:互联网 发布:油罐容积计算软件 编辑:程序博客网 时间:2024/05/17 07:04
DateFormat = (function(){    var SIGN_REGEXP = /([yMdhsm])(\1*)/g;    var DEFAULT_PATTERN = 'yyyy-MM-dd';    function padding(s,len){     var len =len - (s+'').length;     for(var i=0;i<len;i++){s = '0'+ s;}     return s;    }; return({     format: function(date,pattern){      pattern = pattern||DEFAULT_PATTERN;      return pattern.replace(SIGN_REGEXP,function($0){       switch($0.charAt(0)){        case 'y' : return padding(date.getFullYear(),$0.length);        case 'M' : return padding(date.getMonth()+1,$0.length);        case 'd' : return padding(date.getDate(),$0.length);        case 'w' : return date.getDay()+1;        case 'h' : return padding(date.getHours(),$0.length);        case 'm' : return padding(date.getMinutes(),$0.length);        case 's' : return padding(date.getSeconds(),$0.length);       }      });     },     parse: function(dateString,pattern){      var matchs1=pattern.match(SIGN_REGEXP);      var matchs2=dateString.match(/(\d)+/g);      if(matchs1.length==matchs2.length){       var _date = new Date(1970,0,1);       for(var i=0;i<matchs1.length;i++){     var _int = parseInt(matchs2[i]);     var sign = matchs1[i];    switch(sign.charAt(0)){        case 'y' : _date.setFullYear(_int);break;        case 'M' : _date.setMonth(_int-1);break;        case 'd' : _date.setDate(_int);break;        case 'h' : _date.setHours(_int);break;        case 'm' : _date.setMinutes(_int);break;        case 's' : _date.setSeconds(_int);break;       }    }       return _date;      }      return null;     }    });   })();   

 //将一个 Date 格式化为日期/时间字符串。
 alert(  DateFormat.format(new Date(),'yyyy年MM月dd日')  );
 //从给定字符串的开始分析文本,以生成一个日期。
 alert(  DateFormat.parse('2010-03-17','yyyy-MM-dd')  );

 

 

 

备注:parse方法处理的有点不好,还有点问题。 类似yyyyMMdd之类没有分割的格式无法解析。

 

0 0