说明一下:function Date.prototype.format(format) 这个写法其实不规范,Date.prototype.format = function (format)才是ie、ns和moz通用的写法。所以上面用了后者。

解决方案 »

  1.   

    呵呵,M和F规则也实现了: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("E",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][day]).replace("D",daysInYear).replace("w",weekInYear).replace("W",weekInMonth).replace(/MMMM+/,sMonth).replace("MMM",sMonth.substring(0,3)).replace("MM",(month<9?"0":"")+(month+1)).replace("F",Math.ceil(date/7));
    }
      

  2.   

    赫赫,emu你怎麼老喜歡搞這些東西
      

  3.   

    emu又有精品推出了,收藏!!!:)一个小地方(W替换的先后顺序)完善了一下
    <!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>
      

  4.   

    呵呵,没注意到Wednesday有个W在里面。