JS格式化日期

来源:岁月联盟 编辑:exp 时间:2012-08-22

JS格式化日期真是件淡疼的事。

网上转了半天终于发现有一个挺不错的函数。贴上来做个笔记。

[javascript]
/**
* 时间对象的格式化
*/ 
Date.prototype.format = function(format) 

/*
* format="yyyy-MM-dd hh:mm:ss";
*/ 
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; 

/**
* 时间对象的格式化
*/
Date.prototype.format = function(format)
{
/*
* format="yyyy-MM-dd hh:mm:ss";
*/
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;
}

 

调用示例:

new Date().format("yyyy-MM-dd hh:mm:ss");

结果:2012-09-01 15:44:26

 

感谢当初写这个的前辈!
st.format("yyyy-MM-dd hh:mm:ss");st.format("yyyy-MM-dd hh:mm:ss");st.format("yyyy-MM-dd hh:mm:ss");