Moment.js - 如何得到的年限,因为一个日期,不是围捕?(Moment.js - how

2019-07-17 15:29发布

我试图用计算一个人的年龄Moment.js ,但我发现,否则有用fromNow方法向上舍岁月。 举例来说,如果今天是2012年12月27日与人的出生日期是1978年2月26日, moment("02/26/1978", "MM/DD/YYYY").fromNow()返回'35年前”。 我怎样才能让Moment.js忽略的月数,并简单地返回的年(即34),因为日期是多少?

Answer 1:

使用moment.js是那么容易,因为:

var years = moment().diff('1981-01-01', 'years');
var days = moment().diff('1981-01-01', 'days');

有关更多的参考,你可以阅读moment.js 官方文档 。



Answer 2:

http://jsfiddle.net/xR8t5/27/

如果你不想让分数值:

var years = moment().diff('1981-01-01', 'years',false);
alert( years);

如果你想分数值:

var years = moment().diff('1981-01-01', 'years',true);
alert( years);

单位可以是[秒,分钟,小时,天,周,月,年]



Answer 3:

有似乎是一个差函数接受的时间间隔使用,以及作为一个选项圆的结果。 所以,像

Math.floor(moment(new Date()).diff(moment("02/26/1978","MM/DD/YYYY"),'years',true)))

我没有试过,我不完全熟悉的时刻,但似乎这应该得到你想要的东西(而无需每月重新设置)。



Answer 4:

我发现,它会工作到本月重置一月两个日期(提供的日期及现在):

> moment("02/26/1978", "MM/DD/YYYY").month(0).from(moment().month(0))
"34 years ago"


Answer 5:

这种方法是简单而强大的。

值是日期和“DD-MM-YYYY”是日期的面具。

moment().diff(moment(value, "DD-MM-YYYY"), 'years');


Answer 6:

试试这个:

 moment("02/26/1978", "MM/DD/YYYY").fromNow().split(" ")[0];

说明:

我们收到的字符串是这样的:'23天前”。 它分割到数组:[“23”,“天”,“前”],然后采取第一项“23”。



Answer 7:

这个方法对我的作品。 它的检查,如果该人曾于今年他们的生日和减一一年否则。

// date is the moment you're calculating the age of
var now = moment().unix();
var then = date.unix();
var diff = (now - then) / (60 * 60 * 24 * 365);
var years = Math.floor(diff);

编辑:第一个版本没有十分完美地工作。 更新后的人应



Answer 8:

如果你不想使用年龄计算的任何模块

var age = Math.floor((new Date() - new Date(date_of_birth)) / 1000 / 60 / 60 / 24 / 365.25)


Answer 9:

如果你想显示年剩下的日子:

var m = moment(d.birthday.date, "DD.MM.YYYY");
var years = moment().diff(m, 'years', false);
var days = moment().diff(m.add(years, 'years'), 'days', false);
alert(years + ' years, ' + days + ' days');


Answer 10:

我喜欢这个小方法。

function getAgeFromBirthday(birthday) {
    if(birthday){
      var totalMonths = moment().diff(birthday, 'months');
      var years = parseInt(totalMonths / 12);
      var months = totalMonths % 12;
        if(months !== 0){
           return parseFloat(years + '.' + months);
         }
    return years;
      }
    return null;
}


文章来源: Moment.js - how do I get the number of years since a date, not rounded up?