日期:2014-05-17 浏览次数:20787 次
很简单的一个功能函数,用Date()对象获取到当前时间,然后用setTimeout每隔1秒获取最新的时间. 写的过程中碰到过一个小小的问题: 我最初的想法是用setInterval()每隔1秒获取最新时间,可是可以,但setInterval如果放在主函数内部,但导致内存泄漏(至于原因,暂时还没想明白),后来在Rocky的提醒下用setTimeout()才解决内存泄漏问题 01 function nowTime(ev,type){ 02 /* 03 * ev:显示时间的元素 04 * type:时间显示模式.若传入12则为12小时制,不传入则为24小时制 05 */ 06 //年月日时分秒 07 var Y,M,D,W,H,I,S; 08 //月日时分秒为单位时前面补零 09 function fillZero(v){ 10 if(v<10){v='0'+v;} 11 return v; 12 } 13 (function(){ 14 var d=new Date(); 15 var Week=['星期天','星期一','星期二','星期三','星期四','星期五','星期六']; 16 Y=d.getFullYear(); 17 M=fillZero(d.getMonth()+1); 18 D=fillZero(d.getDate()); 19 W=Week[d.getDay()]; 20 H=fillZero(d.getHours()); 21 I=fillZero(d.getMinutes()); 22 S=fillZero(d.getSeconds()); 23 //12小时制显示模式 24 if(type && type==12){ 25 //若要显示更多时间类型诸如中午凌晨可在下面添加判断 26 if(H<=12){ 27 H='上午 '+H; 28 }else if(H>12 && H<24){ 29 H-=12; 30 H='下午 '+fillZero(H); 31 }else if(H==24){ 32 H='下午 00'; 33 } 34 } 35 ev.innerHTML=Y+'年'+M+'月'+D+'日 '+' '+W+' '+H+':'+I+':'+S; 36 //每秒更新时间 37 setTimeout(arguments.callee,1000); 38 })();
------解决方案--------------------
用servlet 直接out.print();
------解决方案--------------------