问题描述
functiondate(format,timestamp){vara,jsdate=((timestamp)?newDate(timestamp):newDate());varpad=function(n,c){if((n=n+"").length<c){returnnewArray(++c-n.length).join("0")+n;}else{returnn;}};vartxt_weekdays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];vartxt_ordin={1:"st",2:"nd",3:"rd",21:"st",22:"nd",23:"rd",31:"st"};vartxt_months=["","January","February","March","April","May","June","July","August","September","October","November","December"];varf={//Dayd:function(){returnpad(f.j(),2);},D:function(){t=f.l();returnt.substr(0,3);},j:function(){returnjsdate.getDate();},l:function(){returntxt_weekdays[f.w()];},N:function(){returnf.w()+1;},S:function(){returntxt_ordin[f.j()]?txt_ordin[f.j()]:'th';},w:function(){returnjsdate.getDay();},z:function(){return(jsdate-newDate(jsdate.getFullYear()+"/1/1"))/864e5>>0;},//WeekW:function(){vara=f.z(),b=364+f.L()-a;varnd2,nd=(newDate(jsdate.getFullYear()+"/1/1").getDay()||7)-1;if(b<=2&&((jsdate.getDay()||7)-1)<=2-b){return1;}else{if(a<=2&&nd>=4&&a>=(6-nd)){nd2=newDate(jsdate.getFullYear()-1+"/12/31");returndate("W",Math.round(nd2.getTime()/1000));}else{return(1+(nd<=3?((a+nd)/7):(a-(7-nd))/7)>>0);}}},//MonthF:function(){returntxt_months[f.n()];},m:function(){returnpad(f.n(),2);},M:function(){t=f.F();returnt.substr(0,3);},n:function(){returnjsdate.getMonth()+1;},t:function(){varn;if((n=jsdate.getMonth()+1)==2){return28+f.L();}else{if(n&1&&n<8||!(n&1)&&n>7){return31;}else{return30;}}},//YearL:function(){vary=f.Y();return(!(y&3)&&(y%1e2||!(y%4e2)))?1:0;},//onotsupportedyetY:function(){returnjsdate.getFullYear();},y:function(){return(jsdate.getFullYear()+"").slice(2);},//Timea:function(){returnjsdate.getHours()>11?"pm":"am";},A:function(){returnf.a().toUpperCase();},B:function(){//peterpaulkoch:varoff=(jsdate.getTimezoneOffset()+60)*60;vartheSeconds=(jsdate.getHours()*3600)+(jsdate.getMinutes()*60)+jsdate.getSeconds()+off;varbeat=Math.floor(theSeconds/86.4);if(beat>1000)beat-=1000;if(beat<0)beat+=1000;if((String(beat)).length==1)beat="00"+beat;if((String(beat)).length==2)beat="0"+beat;returnbeat;},g:function(){returnjsdate.getHours()%12||12;},G:function(){returnjsdate.getHours();},h:function(){returnpad(f.g(),2);},H:function(){returnpad(jsdate.getHours(),2);},i:function(){returnpad(jsdate.getMinutes(),2);},s:function(){returnpad(jsdate.getSeconds(),2);},//unotsupportedyet//Timezone//enotsupportedyet//InotsupportedyetO:function(){vart=pad(Math.abs(jsdate.getTimezoneOffset()/60*100),4);if(jsdate.getTimezoneOffset()>0)t="-"+t;elset="+"+t;returnt;},P:function(){varO=f.O();return(O.substr(0,3)+":"+O.substr(3,2));},//Tnotsupportedyet//Znotsupportedyet//FullDate/Timec:function(){returnf.Y()+"-"+f.m()+"-"+f.d()+"T"+f.h()+":"+f.i()+":"+f.s()+f.P();},//rnotsupportedyetU:function(){returnMath.round(jsdate.getTime()/1000);}};returnformat.replace(/[\]?([a-zA-Z])/g,function(t,s){if(t!=s){//escapedret=s;}elseif(f[s]){//adatefunctionexistsret=f[s]();}else{//nothingspecialret=s;}returnret;});}