根據出生日期計算當前年齡

要求:

大於11歲:XX歲

大於等於18個月且小於11歲:xx歲xx月

小於18個月:xx月xx天

提示:輸入的是一個moment對象

birthdayToAgeByYear(values){
    let date = this.getValue(values[0]);//moment對象
    let newAge="";
    if(moment.isMoment(date)){ //點擊日曆中的日期存在,否則會是空
        let d1=date;
        let d2=moment();   //當前時間
        let d2BeforeOneMonth=moment().subtract(1,"months").daysInMonth();
        if(d2>d1){
            let dayDiff=d2.diff(d1,"day");    //時間差:以日爲單位
            let monthDiff=d2.diff(d1,"month");  //時間差:以月爲單位
            let yearDiff=d2.diff(d1,"year");   //時間差,以年爲單位
            let hourDiff=d2.diff(d1,"hour");    //時間差,以小時爲單位
            if( yearDiff >= 11){
                newAge=yearDiff+"歲";
            }else if((yearDiff<11 )&& (monthDiff>=18)){
                let tempmonth=monthDiff%12;
                if(tempmonth==0){newAge=yearDiff+"歲";}else{
                    newAge=yearDiff+"歲"+tempmonth+"個月";}
            }else{
                if(monthDiff===0){
                    if(hourDiff<24){
                        newAge="今天出生";
                    }else{
                        newAge=dayDiff+"天";
                    }
                }else if(d1.date()==d2.date()){
                    newAge=monthDiff+"個月";
                }else{
                    let d2date=d2.date();
                    let d1date=d1.date();
                    if(d1date<d2date){
                        let tempday1=d2date-d1date;
                        newAge=monthDiff+"個月"+tempday1+"天";
                    }else{
                        let tempday2=d2BeforeOneMonth-d1date+d2date;
                        newAge=monthDiff+"個月"+tempday2+"天";
                    }

                }
            }
        }else{
            newAge="出生日期選擇錯誤!";
        }
    }else{
        newAge='';
    }
    return newAge;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章