想想我们可以做一个计时器,记录一下我们走过了多少时光。看了一下网上别人的一些代码,记录年月的都并不科学,甚至很麻烦,自己倒腾了一上午,总算弄出来了一个。
自己觉得还比较科学,暂时没有发现BUG,如果哪里有错,希望大家指出来!
上代码:
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript">function live_time(){ var live_year,live_month,live_day,live_hour,live_minute,live_sec; var birth = new Date(); birth.setFullYear(1990,6,19); birth.setHours(0); birth.setMinutes(0); birth.setSeconds(0); //获取当前时间 var now = new Date();//alert(now); var t = new Date(now); //计算时间 if(t.setFullYear(birth.getFullYear())>=birth){//满一年正向算,比如生日是1992-7-20,而当前时间是1992-8-20 live_year = now.getFullYear() - birth.getFullYear(); live_month = now.getMonth() - birth.getMonth() ; live_day = now.getDate() - birth.getDate(); live_hour = now.getHours() - birth.getHours(); live_minute = now.getMinutes() - birth.getMinutes(); live_sec = now.getSeconds() - birth.getSeconds(); }else{//未满一年(月日)反向算,比如生日是1992-7-20,而当前时间是1992-6-20 live_year = now.getFullYear() - birth.getFullYear()-1; live_month = 12 - birth.getMonth() + now.getMonth(); //生日月份的天数,用下个月1日毫秒减去当月1日毫秒算天数,如果是11也就是12月,用第二年1月1日减 var month_day; if(birth.getMonth()<11) month_day = parseInt((new Date().setFullYear(birth.getFullYear(),birth.getMonth()+1,01)-new Date().setFullYear(birth.getFullYear(),birth.getMonth(),01))/86400000); else month_day = parseInt((new Date().setFullYear(birth.getFullYear()+1,0,01)-new Date().setFullYear(birth.getFullYear(),birth.getMonth(),01))/86400000); live_day = month_day - birth.getDate() + now.getDate(); live_hour = now.getHours() - birth.getHours(); live_minute = now.getMinutes() - birth.getMinutes(); live_sec = now.getSeconds() - birth.getSeconds(); } var s = live_year+"岁,"+live_month+"个月,"+live_day+"天,"+live_hour+"小时,"+live_minute+"分,"+live_sec+"秒."; document.getElementById("timer").innerHTML = s;} window.onload = setInterval(live_time,1000);</script> </head><body> <div id="timer"></div> </body></html>
大家别看了 问题多的很。。。
计算一个人的年龄(年月日时分秒),有不对的地方希望大家指出!,布布扣,bubuko.com
时间: 2024-10-07 11:31:07