首页 > 编程知识 正文

js判断年龄,js通过输入出生年份得到年龄

时间:2023-05-03 14:14:13 阅读:276869 作者:963

1.根据日期算年龄 mymethod(birthday){//根据日期算年龄 if(birthday){ birthday=birthday.split('-'); // 新建日期对象 let date = new Date(); // 今天日期,数组,同 birthday let today = [date.getFullYear(), date.getMonth() + 1, date.getDate()]; // 分别计算年月日差值 let age = today.map((val, index) => { return val - birthday[index] }) // 当天数为负数时,月减 1,天数加上月总天数 if (age[2] < 0) { // 简单获取上个月总天数的方法,不会错 let lastMonth = new Date(today[0], today[1], 0) age[1]-- age[2] += lastMonth.getDate() } // 当月数为负数时,年减 1,月数加上 12 if (age[1] < 0) { age[0]-- age[1] += 12 } console.log(age[0]+'岁'+age[1]+'月'+age[2]+'天'); } } // mymethod(2020-08-08) 2.根据年龄算日期 myfunction(ageYear,ageMonth,ageDay){//根据年龄算日期 var subYear = parseInt(ageYear); var subMonth = parseInt(ageMonth); var subDay = parseInt(ageDay); var now = new Date(); var nowYear = now.getFullYear(); var nowMonth = now.getMonth()+1; var nowDay = now.getDate(); // 按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。 var day = nowDay - subDay; var month = nowMonth - subMonth; var year = nowYear - subYear; // 检查是否溢出 if(day<=0){ // 获得上月的天数 var lastMonth = nowMonth - 1; var lastMonthOfYear = nowYear; if(lastMonth<=0){ lastMonth =lastMonth + 12 //(lastMonth + 12) % 12; lastMonthOfYear = lastMonthOfYear - 1; } day = day + new Date(lastMonthOfYear, lastMonth, 0).getDate(); month = month - 1; } if(month<=0){ month =month + 12 //(month + 12) % 12; year--; } if(month<10){ month='0'+month } if(day<10){ day='0'+day } console.log(year+'-'+month+'-'+day); } // myfunction(1,10,20)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。