您的位置:首页 > Web前端 > JavaScript

实现JavaScript中Date对象的format()函数

2015-03-26 16:12 645 查看
因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;
}


其实这个还可以优化,但是时间问题,我这就不改动了,大家有兴趣的可以在评论中重写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: