很多语言中都带有日期的格式化函数,而Javascript中却没有提供类似的方法。
之前从某位前人的帖子中发现了下面的代码,感觉非常简洁,存留备用。
/**
* 时间对象的格式化;
*/
Date.prototype.format = function (format) {
/*
示例
var d=new Date();
d.format("YYYY-MM-dd hh:mm:ss");
结果:"2014-01-02 12:34:56"
*/
var o = {
"M+": this.getMonth() + 1, // 月
"d+": this.getDate(), // 日
"h+": this.getHours(), // 小时
"m+": this.getMinutes(), // 分钟
"s+": this.getSeconds(), // 秒
"q+": Math.floor((this.getMonth() + 3) / 3), // 季度
"S": this.getMilliseconds() // 毫秒
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "") //年
.substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
: ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}