小虾虎鱼

小虾虎鱼

javascript日期时间格式化

作者 禾惠 发表于 2014/07/23,最后修改于 2014/07/23

经常遇到要对时间戳进行格式化,但基本上都是临时需要随时写,从未整理过,今天又遇到对时间戳进行格式化,于是记载下来,以后需要直接拿过来用。

先看代码:

Date.prototype.format = function (format) {   
    format = format || 'YYYY-MM-DD hh:mm:ss';   
    var date = {   
        YYYY: this.getFullYear(),   
        YY: this.getYear(),   
        MM: (this.getMonth() > 8 ? '' : '0') + (this.getMonth() + 1),   
        M: this.getMonth() + 1,   
        DD: (this.getDate() > 9 ? '' : '0') + this.getDate(),   
        D: this.getDate(),   
        hh: this.getHours(),   
        mm: (this.getMinutes() > 9 ? '' : '0') + this.getMinutes(),   
        ss: (this.getSeconds() > 9 ? '' : '0') + this.getSeconds(),   
        h: this.getHours(),   
        m: this.getMinutes(),   
        s: this.getSeconds()   
    };   
    var arr = format.match(/[a-zA-Z]+/g);   
    for (var i = 0; i < arr.length; i++) {   
        format = format.replace(arr[i], date[arr[i]] || '');   
    }   
    return format;   
}


在Date对象中添加了format原型方法,可以通过new Date().format()来格式化日期。

具体的参数可以看函数内date对象。

如:new Date("2014-7-23 21:40:54").format("YYYY-MM-DD hh:mm:ss") 得到的结果为:2014-07-23 21:41:36;

如:new Date("2014-7-23 21:41:56").format("YYYY-M-DD hh:mm:ss") 得到的结果为:2014-7-23 21:42:39

注意上面两个例子中的月份,格式中为MM则对应07,为M则对应7.

双字母表示小于10前面补0,单字母则表示小于10不补0。 月、日、分、秒 都可以支持这样设置 。