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

页面导航:首页 > 网络编程 > JavaScript > 实现JavaScript中Date对象的format()函数

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

来源: 作者: 时间:2016-02-02 09:59 【

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

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

 

/**
 * Author Joyce.Luo 11:57:35 prepared in 2015.02.10
 *  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;
}

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

 

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<