Answers:
如果您不希望分数值:
var years = moment().diff('1981-01-01', 'years',false);
alert( years);
如果需要分数值:
var years = moment().diff('1981-01-01', 'years',true);
alert( years);
单位可以是[秒,分钟,小时,天,周,月,年]
似乎存在一个差异函数,该函数接受要使用的时间间隔以及不对结果进行四舍五入的选项。所以,像
Math.floor(moment(new Date()).diff(moment("02/26/1978","MM/DD/YYYY"),'years',true)))
我还没有尝试过,而且我对时机还不很熟悉,但是看来这应该可以满足您的要求(不必重置月份)。
age = moment().diff(birthDate, 'years')
。
试试这个:
moment("02/26/1978", "MM/DD/YYYY").fromNow().split(" ")[0];
说明:
我们收到如下字符串:'23 days ago'。将其拆分为数组:['23','days','ago'],然后获取第一项'23'。
这种方法对我有用。它正在检查该人今年是否过生日,否则减去一年。
// 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);
编辑:第一个版本不是很完美。更新的应该
cal 1752
我喜欢这种小方法。
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;
}