<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 16  文章 - 42  trackbacks - 0
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    失業中…

    常用鏈接

    留言簿(7)

    隨筆檔案(16)

    技術Blog

    搜索

    •  

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    常用公歷日期處理程序
    <script?language="JavaScript">
    <!--
    //程序:常用公歷日期處理程序
    //
    作者:梅雪香(meixx)
    //
    時間:忘了
    /*用相對不規則的字符串來創建日期對象,不規則的含義為:順序包含年月日三個數值串,有間隔*/
    String.prototype.parseDate?
    =?function(){
    ????
    var?ar?=?(this?+?",0,0,0").match(/\d+/g);
    ????
    return?ar[5]?(new?Date(ar[0],ar[1]-1,ar[2],ar[3],ar[4],ar[5])):(new?Date());
    }


    /*
    ?*?功能:根據輸入表達式返回日期字符串
    ?*?參數:dateFmt:字符串,由以下結構組成????
    ?*??????yy:長寫年,YY:短寫年mm:數字月,MM:英文月,dd:日,hh:時,
    ?*??????mi:分,ss秒,ms:毫秒,we:漢字星期,WE:英文星期.
    ?*??????isFmtWithZero?:?是否用0進行格式化,true?or?false
    ?*?返回:對應日期的中文字符串
    */

    Date.prototype.toString?
    =?function(dateFmt,isFmtWithZero){
    ????dateFmt?
    =?(dateFmt?==?null???"yy-mm-dd?hh:mi:ss"?:?dateFmt);
    ????
    if(typeof(dateFmt)?!=?"string"?)
    ????????
    throw?(new?Error(-1,?'toString()方法的第一個參數為字符串類型!'));
    ????isFmtWithZero?
    =?!!isFmtWithZero;
    ????
    var?weekArr=[["","","","","","",""],["SUN","MON","TUR","WED","THU","FRI","SAT"]];
    ????
    var?monthArr=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"];
    ????
    var?str=dateFmt;
    ????
    var?o?=?{
    ????????
    "yy"?:?this.getFullYear(),
    ????????
    "YY"?:?this.getYear(),
    ????????
    "mm"?:?this.getMonth()+1,
    ????????
    "MM"?:?monthArr[this.getMonth()],
    ????????
    "dd"?:?this.getDate(),
    ????????
    "hh"?:?this.getHours(),
    ????????
    "mi"?:?this.getMinutes(),
    ????????
    "ss"?:?this.getSeconds(),
    ????????
    "we"?:?"星期"?+?weekArr[0][this.getDay()],
    ????????
    "WE"?:?weekArr[1][this.getDay()]
    ????}

    ????
    for(var?i?in?o){
    ????????str?
    =?str.replace(new?RegExp(i,"g"),o[i].toString().fmtWithZero(isFmtWithZero));
    ????}

    ????str?
    =?str.replace(/ms/g,this.getMilliseconds().toString().fmtWithZeroD(isFmtWithZero));
    ????
    return?str;
    }

    /*將一位數字格式化成兩位,如:?9?to?09*/
    String.prototype.fmtWithZero?
    =?function(isFmtWithZero){????
    ????
    return?(isFmtWithZero?&&?/^\d$/.test(this))?"0"+this:this;
    }

    String.prototype.fmtWithZeroD?
    =?function(isFmtWithZero){????
    ????
    return?(isFmtWithZero?&&?/^\d{2}$/.test(this))?"00"+this:((isFmtWithZero?&&?/^\d$/.test(this))?"0"+this:this);
    }


    /*?功能?:?返回與某日期相距N天(N個24小時)的日期
    ?*?參數?:?num?number類型?可以為正負整數或者浮點數,默認為1;
    ?*????????type?0(秒)?or?1(天),默認為天
    ?*?返回?:?新的Date對象
    ?
    */

    Date.prototype.dateAfter
    =function(num,type){
    ????num?
    =?(num?==?null?1:num);
    ????
    if(typeof(num)!="number")?throw?new?Error(-1,"dateAfterDays(num,type)的num參數為數值類型.");
    ????type?
    =?(type==null?1:type);
    ????
    var?arr?=?[1000,86400000];
    ????
    return?new?Date(this.valueOf()?+?num*arr[type]);
    }


    //判斷是否是閏年,返回true?或者?false
    Date.prototype.isLeapYear?=?function?(){
    ????
    var?year?=?this.getFullYear();
    ????
    return?(0==year%4?&&?((year?%?100?!=?0)||(year?%?400?==?0)));
    }


    //返回該月天數
    Date.prototype.getDaysOfMonth?=?function?(){
    ????
    return?(new?Date(this.getFullYear(),this.getMonth()+1,0)).getDate();
    }


    //日期比較函數,參數date:為Date類型,如this日期晚于參數:1,相等:0?早于:?-1
    Date.prototype.dateCompare?=?function(date){
    ????
    if(typeof(date)?!=?"object"?||?!(/Date/.test(date.constructor)))
    ?????????
    throw?new?Error(-1,"dateCompare(date)的date參數為Date類型.");
    ????
    var?d?=?this.getTime()?-?date.getTime();
    ????
    return?d>0?1:(d==0?0:-1);
    }


    /*功能:返回兩日期之差
    ?*參數:pd???PowerDate對象
    ?*????type:?返回類別標識.yy:年,mm:月,ww:周,dd:日,hh:小時,mi:分,ss:秒,ms:毫秒
    ?*????intOrFloat?:返回整型還是浮點型值?0:整型,不等于0:浮點型
    ?*????output?:?輸出提示,如:時間差為#周!
    ?
    */

    Date.prototype.calDateDistance?
    =?function?(date,type,intOrFloat,output){
    ????
    if(typeof(date)?!=?"object"?||?!(/Date/.test(date.constructor)))
    ?????????
    throw?new?Error(-1,"calDateDistance(date,type,intOrFloat)的date參數為Date類型.");
    ????type?
    =?(type==null?'dd':type);
    ????
    if(!((new?RegExp(type+",","g")).test("yy,mm,ww,dd,hh,mi,ss,ms,")))
    ?????????
    throw?new?Error(-1,"calDateDistance(pd,type,intOrFloat,output)的type參數為非法.");
    ????
    var?iof?=?(intOrFloat==null?0:intOrFloat);
    ????
    var?num=0;
    ????
    var?o?=?{
    ????????
    "ww"?:?7*86400000,
    ????????
    "dd"?:?86400000,
    ????????
    "hh"?:?3600000,
    ????????
    "mi"?:?60000,
    ????????
    "ss"?:?1000,
    ????????
    "ms"?:?1
    ????}

    ????
    switch(type){
    ????????
    case?"yy":?num?=?this.getFullYear()?-?date.getFullYear();?break;
    ????????
    case?"mm":?num?=?(this.getFullYear()?-?date.getFullYear())*12+this.getMonth()-date.getMonth();?break;
    ????????
    default:?
    ????????????
    var?sub?=?this.valueOf()?-?date.valueOf();
    ????????????
    if?(o[type])
    ????????????????num?
    =?(sub/o[type]).fmtRtnVal(iof);
    ????????????
    break;
    ????}

    ????
    return?(output???output.replace(/#/g,"?"+num+"?")?:?num);
    }

    //返回整數或者兩位小數的浮點數
    Number.prototype.fmtRtnVal?=?function?(intOrFloat){
    ????
    return?(intOrFloat?==?0???Math.floor(this)?:?parseInt(this*100)/100);
    }

    //根據當前日期所在年和周數返回周日的日期
    Date.prototype.RtnByWeekNum?=?function?(weekNum){
    ????
    if(typeof(weekNum)?!=?"number")
    ????????
    throw?new?Error(-1,"RtnByWeekNum(weekNum)的參數是數字類型.");
    ????
    var?date?=?new?Date(this.getFullYear(),0,1);
    ????
    var?week?=?date.getDay();
    ????week?
    =?(week==0?7:week);
    ????
    return?date.dateAfter(weekNum*7-week,1);
    }

    //根據日期返回該日期所在年的周數
    Date.prototype.getWeekNum?=?function?(){
    ????
    var?dat?=?new?Date(this.getFullYear(),0,1);
    ????
    var?week?=?dat.getDay();
    ????week?
    =?(week==0?7:week);
    ????
    var?days?=?this.calDateDistance(dat,"dd")+1;
    ????
    return?((days?+?6?-?this.getDay()?-?7?+?week)/7);
    }


    //-->
    </script>

    <script?language="JavaScript">
    <!--
    var?dw?=?document.write;
    var?date2?=?"2005-12-30".parseDate();
    dw(date2,
    "<br>");
    var?date3?=?"2006-1-10?11?11?11".parseDate();
    dw(date2.calDateDistance(date3,
    null,null,"時間差為#天!"));
    //alert(new?Date(2000,2,-29));
    //
    -->
    </script>
    posted on 2006-09-27 06:50 梅雪香 閱讀(3177) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产午夜免费福利红片| 精品国产麻豆免费人成网站| 国产免费女女脚奴视频网| 亚洲视频在线观看一区| 无码精品国产一区二区三区免费| 亚洲熟妇无码八AV在线播放| 中文字幕久精品免费视频| 亚洲av成人无码久久精品| 99视频在线免费| 亚洲一级毛片免费观看| 成人a视频片在线观看免费| 337p日本欧洲亚洲大胆人人 | 日本免费电影一区| 久久亚洲色WWW成人欧美| 亚洲国产精品无码久久久久久曰| 一道本不卡免费视频| 亚洲产国偷V产偷V自拍色戒| **真实毛片免费观看| 亚洲中文字幕精品久久| 亚洲 综合 国产 欧洲 丝袜| 中文无码日韩欧免费视频| 337p日本欧洲亚洲大胆精品555588 | 日本人成在线视频免费播放| 久久精品国产亚洲77777| 啦啦啦中文在线观看电视剧免费版| 亚洲sm另类一区二区三区| 中文字幕亚洲激情| 久久久久av无码免费网| 老司机精品视频免费| 亚洲成人在线电影| 暖暖免费高清日本中文| a级毛片黄免费a级毛片| 亚洲一区无码中文字幕乱码| 亚洲国产精品激情在线观看| 日本xxxx色视频在线观看免费 | 高清免费久久午夜精品| 久久精品亚洲中文字幕无码麻豆| 久久电影网午夜鲁丝片免费| 久久er国产精品免费观看8| 亚洲国产精品日韩在线观看| 亚洲国产精品成人一区|