JavaScript中Date对象扩展format函数

因Web页面展示问题,经常需要将日期转换为某种格式,但是JavaScript脚本语言官方却没有对其提供,程序员都很懒的,咱们自个来写,自个来扩展!!

/**
 * Author Joyce.Luo 11:57:35 prepared in 2015.02.10
 * JavaScript language Methods: format(), based on the replace() method to realize
 * For example:
 *         new Date().format("yyyy-MM-dd HH:mm:ss");
 *         new Date().format("yyyy-MM-dd");
 * @param {} pattern the pattern describing the date and time format
 * @return {} returns a formatted string date
 */
Date.prototype.format = function(pattern){
    var o = {
        "M+" : this.getMonth()+1,                 /*Month*/
        "d+" : this.getDate(),                    /*Day*/
        "h+" : this.getHours(),                   /*Hours*/
        "m+" : this.getMinutes(),                 /*Minute*/ 
        "s+" : this.getSeconds(),                 /*Seconds*/
        "q+" : Math.floor((this.getMonth()+3)/3), /*Quarter*/
        "S"  : this.getMilliseconds()             /*Millisecond*/
    };
    if (/(y+)/.test(pattern))
        pattern = pattern.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(pattern))
            pattern = pattern.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return pattern;
}

其实这个还可以优化,但是时间问题,我这就不改动了,大家有兴趣的可以在评论中重写

你可能感兴趣的:(Web,Date,对象,format,脚本语言)