javascript按指定格式将Date对象转换为日期时间字符串

  下面代码将扩展javascript Date对象,为Date对象添加一个format方法,类似于php的date函数,填补了javascript格式日期时间对象功能不足的遗憾:
//对Date的扩展,将 Date 转化为指定格式的字符串
//年(y)、月(m)、日(d)、星期(w)、小时(h)、分(i)、秒(s)、毫秒(u)
//用法:new Date().format("yyyy-mm-dd hh:ii:ss.u") ==> 2016-10-28 23:17:49.085
Date.prototype.format = function( format ) {
    if ( typeof format !== "string" ) format = 'yyyy-mm-dd hh:ii:ss';
    function fillZore(num, len) {
        while(num.toString().length<len){
            num = '0'+num;
        }
        return num;
    }
 
    var Week = ['日','一','二','三','四','五','六']; 
   
    format=format.replace(/yyyy|YYYY/,this.getFullYear());  
    format=format.replace(/yy|YY/, fillZore(this.getYear() % 100, 2)); 
    format=format.replace(/mm|MM/, fillZore(this.getMonth()+1, 2));
    format=format.replace(/m|M/g, this.getMonth()+1);  
    format=format.replace(/dd|DD/, fillZore(this.getDate(), 2));  
    format=format.replace(/d|D/g,this.getDate());  
     
    format=format.replace(/w|W/g, Week[this.getDay()]);  
   
    format=format.replace(/hh|HH/, fillZore(this.getHours(), 2));  
    format=format.replace(/h|H/g, this.getHours());  
    format=format.replace(/ii|II/, fillZore(this.getMinutes(), 2));  
    format=format.replace(/i|I/g, this.getMinutes());  
    format=format.replace(/ss|SS/, fillZore(this.getSeconds(), 2));  
    format=format.replace(/s|S/g, this.getSeconds()); 

    format=format.replace(/u|U/g, fillZore(this.getMilliseconds(), 3)); 
    return format;  
}
用法:
//2016-10-28 23:17:49.085
new Date().format("yyyy-mm-dd hh:ii:ss.u")
//2011年01月02日10时22分33秒
new Date("2011/01/02 10:22:33").format("yyyy年mm月dd日hh时ii分ss秒");
//2016-10-28
new Date().format("yyyy-mm-dd");
//22:53
new Date().format("hh:ii");

0 个评论

要回复文章请先登录注册