根据生日日期计算年龄

function getAge(strAge) {
       const birArr = strAge.split("-");
       const birYear = Number(birArr[0]);
       const birMonth = Number(birArr[1]);
       const birDay = Number(birArr[2]);
 
       const today = new Date();
       const nowYear = today.getFullYear();
       const nowMonth = today.getMonth() + 1; //记得加1
       const nowDay = today.getDate();
       let returnAge;
 
       if (birArr === null) {
           return false
       };
       const d = new Date(birYear, birMonth - 1, birDay);
       console.log(d.getFullYear(), birYear, (d.getMonth() + 1), birMonth, d.getDate(), birDay);
       if (d.getFullYear() === birYear && (d.getMonth() + 1) === birMonth && d.getDate() === birDay) {
           if (nowYear === birYear) {
               returnAge = 0; // 
           } else {
               let ageDiff = nowYear - birYear; // 
               if (ageDiff > 0) {
                   if (nowMonth === birMonth) {
                       let dayDiff = nowDay - birDay; // 
                       if (dayDiff < 0) {
                           returnAge = ageDiff - 1;
                       } else {
                           returnAge = ageDiff;
                       }
                   } else {
                       let monthDiff = nowMonth - birMonth; // 
                       if (monthDiff < 0) {
                           returnAge = ageDiff - 1;
                       } else {
                           returnAge = ageDiff;
                       }
                   }
               } else {
                   return  "出生日期晚于今天,数据有误"; //返回-1 表示出生日期输入错误 晚于今天
               }
           }
           return returnAge;
       } else {
           return ("输入的日期格式错误!");
       }
   }
posted @ 2023-01-29 10:43  SultanST  阅读(16)  评论(0编辑  收藏  举报