JS实现动态显示当前时间(12/24小时制)
今天又要用到动态显示当前时间,且要求可以切换24/12小时制, 记得很久前写过一个24小时制的,但一时没能找着, 于是又重新写了个,若有需要的朋友自行复制粘贴一份吧.
很简单的一个功能函数,实现方式不多言,用Date()对象获取到当前时间,然后用setTimeout每隔1秒获取最新的时间.
写的过程中碰到过一个小小的问题: 我最初的想法是用setInterval()每隔1秒获取最新时间,可是可以,但setInterval如果放在主函数内部,但导致内存泄漏(至于原因,暂时还没想明白),后来在Rocky的提醒下用setTimeout()才解决内存泄漏问题,感谢Rocky同学:)
核心代码及演示查看样例演示
function nowTime(ev,type){ /* * ev:显示时间的元素 * type:时间显示模式.若传入12则为12小时制,不传入则为24小时制 */ //年月日时分秒 var Y,M,D,W,H,I,S; //月日时分秒为单位时前面补零 function fillZero(v){ if(v<10){v='0'+v;} return v; } (function(){ var d=new Date(); var Week=['星期天','星期一','星期二','星期三','星期四','星期五','星期六'] Y=d.getFullYear(); M=fillZero(d.getMonth()+1); D=fillZero(d.getDate()); W=Week[d.getDay()]; H=fillZero(d.getHours()); I=fillZero(d.getMinutes()); S=fillZero(d.getSeconds()); //12小时制显示模式 if(type && type==12){ //若要显示更多时间类型诸如中午凌晨可在下面添加判断 if(H<=12){ H='上午 '+H; }else if(H>12 && H<24){ H-=12; H='下午 '+fillZero(H); }else if(H==24){ H='下午 00'; } } ev.innerHTML=Y+'年'+M+'月'+D+'日 '+' '+W+' '+H+':'+I+':'+S; //每秒更新时间 setTimeout(arguments.callee,1000); })(); }原文发布于Mr.Think的博客: http://mrthink.net/js-nowtime-12or24mode/ 转载请注明出处.