如何用Momentjs精确计算年龄?

Jer*_*emy 1 javascript momentjs

我想从一个人的出生日期计算他的年龄。

我知道可以通过返回出生后的月数或年数moment().diff(date_of_birth, 'months').

我想返回一些更具体的内容,如下所示:

23 days(如果该人还不到一个月大)或2 months1 year 2 months

我们可以用 Momentjs 做到这一点吗?

Rai*_*mer 5

尝试这个

let duration = moment.duration(moment().diff('1987-11-15'));
const formatDuration = (duration) => {
    let years = duration.years();
    let months= duration.months();
    let days= duration.days();
    let result = '';
    if (years === 1) {
        result += 'one year ';
    } else if (years > 1) {
        result += years + ' years ';
    }
    if (months === 1) {
        result += 'one month ';
    } else if (months > 1) {
        result += months + ' months ';
    }
    if (days === 1) {
        result += 'one day ';
    } else if (days > 1) {
        result += days + ' days ';
    }
    return result;
}

console.log('Your age is ', formatDuration(duration) );

// you may also try this.
duration.humanize();
Run Code Online (Sandbox Code Playgroud)