javascript - 如何用Momentjs精确计算年龄?

标签 javascript momentjs

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

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

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

23 天(如果该人出生不到一个月)或2 个月1 年2 个月

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

最佳答案

试试这个

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();

关于javascript - 如何用Momentjs精确计算年龄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51716567/

相关文章:

javascript - 从文本框中收集数字,对它们进行排序,然后按数字将它们放回去?

javascript - 如何将日期格式从 Moment.js 转换为 DD MMMM YYYY

javascript - 如何使用 moment.js 从我的日期中删除年份?

javascript - 时刻 js 的无效日期

javascript - 如何将 112889 (mmddyy) 转换为 11/28/89 或 11/28/1989

javascript - 我如何调用 jQuery 插件中的这个函数?

javascript - 在父 <div> 中布局可变数量的可调整大小的子元素的最佳方法?

javascript - Barba js滚动位置

javascript - AngularJS:ng-if 不能与 ng-click 结合使用?

javascript - 使用 Moment.js 实现 24 小时倒数计时器