emu 2003年5月发表在 http://search.csdn.net/Expert/topic/1779/1779160.xml 上。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>emu's date simple date formatter</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="emu">
<META NAME="Keywords" CONTENT="date formatter format emu">
<META NAME="Description" CONTENT="A function to format Date object into String">
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
Date.prototype.format = function (format){
if (format == null) format = "yyyy/MM/dd HH:mm:ss.SSS";
var year = this.getFullYear();
var month = this.getMonth();
var sMonth = ["January","February","March","April","May","June","July","August","September","October","November","December"][month];
var date = this.getDate();
var day = this.getDay();
var hr = this.getHours();
var min = this.getMinutes();
var sec = this.getSeconds();
var daysInYear = Math.ceil((this-new Date(year,0,0))/86400000);
var weekInYear = Math.ceil((daysInYear+new Date(year,0,1).getDay())/7);
var weekInMonth = Math.ceil((date+new Date(year,month,1).getDay())/7);
return format.replace("yyyy",year).replace("yy",year.toString().substr(2)).replace("dd",(date<10?"0":"")+date).replace("HH",(hr<10?"0":"")+hr).replace("KK",(hr%12<10?"0":"")+hr%12).replace("kk",(hr>0&&hr<10?"0":"")+(((hr+23)%24)+1)).replace("hh",(hr>0&&hr<10||hr>12&&hr<22?"0":"")+(((hr+11)%12)+1)).replace("mm",(min<10?"0":"")+min).replace("ss",(sec<10?"0":"")+sec).replace("SSS",this%1000).replace("a",(hr<12?"AM":"PM")).replace("W",weekInMonth).replace("F",Math.ceil(date/7)).replace(/E/g,["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][day]).replace("D",daysInYear).replace("w",weekInYear).replace(/MMMM+/,sMonth).replace("MMM",sMonth.substring(0,3)).replace("MM",(month<9?"0":"")+(month+1));
}
var d = new Date();
alert(d.format());//default format
alert(d.format("MM-dd-yyyy"));
alert(d.format("dd/MM/yy"));
alert(d.format("dd\\MM\\yyyy HH:mm ss.SSS"));
alert(d.format("yyyy年MM月dd日 HH时mm分ss.SSS秒"));
alert(d.format("yyyy年MM月dd日 E HH(0~23)时mm分ss.SSS秒"));
alert(d.format("yyyy年MM月dd日 E KK(0~11)时mm分ss.SSS秒 a"));
alert(d.format("yyyy年MM月dd日 E hh(1~12)时mm分ss.SSS秒 a"));
alert(d.format("yyyy年MM月dd日 E kk(1~24)时mm分ss.SSS秒 今年的第D天,第w周,MMMM这个月的第W周,MMM这个月的第F个E"));
//-->
</SCRIPT>
</BODY>
</HTML>