javascript格式化日期

将String类型解析为Date类型.

parseDate('2006-1-1') return new Date(2006,0,1)

parseDate(' 2006-1-1 ') return new Date(2006,0,1)

parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)

parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);

parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)

parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)

parseDate('不正确的格式') retrun null

*/

function parseDate(str){

if(typeof str == 'string'){

var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);

if(results && results.length>3)

return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));

results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);

if(results && results.length>6)

return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));

results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);

if(results && results.length>7)

return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));

}

return null;

}

/*

将Date/String类型,解析为String类型.

传入String类型,则先解析为Date类型

不正确的Date,返回 ''

如果时间部分为0,则忽略,只返回日期部分.

*/

function formatDate(v){

if(typeof v == 'string') v = parseDate(v);

if(v instanceof Date){

var y = v.getFullYear();

var m = v.getMonth() + 1;

var d = v.getDate();

var h = v.getHours();

var i = v.getMinutes();

var s = v.getSeconds();

var ms = v.getMilliseconds();

if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;

if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;

return y + '-' + m + '-' + d;

}

return '';

}

From: http://gwbasic.javaeye.com/blog/36904

=============================

程序代码

<SCRIPT LANGUAGE="JavaScript">

<!--

Date.prototype.format = function(format)

{

var o = {

"M+" : this.getMonth()+1, //month

"d+" : this.getDate(), //day

"h+" : this.getHours(), //hour

"m+" : this.getMinutes(), //minute

"s+" : this.getSeconds(), //second

"q+" : Math.floor((this.getMonth()+3)/3), //quarter

"S" : this.getMilliseconds() //millisecond

}

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;

}

function rain()

{

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

obj2 = new Date().format("yyyy-MM-dd");

obj3 = new Date().format("yyyy/MM/dd");

obj4 = new Date().format("MM/dd/yyyy");

alert("obj1="+obj1+ "/n obj2="+obj2 + "/n obj3=" +obj3+ "/n obj4=" +obj4);

}

//-->

</SCRIPT>

From: http://www.jacken.com.cn/Web-Design/Javascript/2009-03-11/Javascript_Article_28024.html

=============================