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;
}

其實這個還可以優化,但是時間問題,我這就不改動了,大家有興趣的可以在評論中重寫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章