akn*_*ds1 117 javascript date momentjs
我正在尝试使用Moment.js来计算一个人的年龄,但我发现其他有用的fromNow方法可以完成这些年.例如,如果今天是12/27/2012并且该人的出生日期是02/26/1978,则moment("02/26/1978", "MM/DD/YYYY").fromNow()返回'35年前'.如何让Moment.js忽略月数,并简单地返回自该日期以来的年数(即34)?
Edw*_*ran 194
使用moment.js就像:
var years = moment().diff('1981-01-01', 'years');
var days = moment().diff('1981-01-01', 'days');
Run Code Online (Sandbox Code Playgroud)
有关其他参考,请阅读moment.js 官方文档.
Raz*_*aul 27
如果你不想要分数值:
var years = moment().diff('1981-01-01', 'years',false);
alert( years);
Run Code Online (Sandbox Code Playgroud)
如果你想要分数值:
var years = moment().diff('1981-01-01', 'years',true);
alert( years);
Run Code Online (Sandbox Code Playgroud)
单位可以是[秒,分钟,小时,天,周,月,年]
use*_*342 19
似乎有一个差异函数接受使用的时间间隔以及不对结果进行舍入的选项.所以,像
Math.floor(moment(new Date()).diff(moment("02/26/1978","MM/DD/YYYY"),'years',true)))
Run Code Online (Sandbox Code Playgroud)
我没有试过这个,我对时刻并不完全熟悉,但看起来这应该得到你想要的东西(无需重置月份).
akn*_*ds1 12
我发现将两个日期(提供日期和现在)的月份重置为1月:
> moment("02/26/1978", "MM/DD/YYYY").month(0).from(moment().month(0))
"34 years ago"
Run Code Online (Sandbox Code Playgroud)
小智 9
这种方法简单而有力.
值是日期,"DD-MM-YYYY"是日期的掩码.
moment().diff(moment(value, "DD-MM-YYYY"), 'years');
Run Code Online (Sandbox Code Playgroud)
试试这个:
moment("02/26/1978", "MM/DD/YYYY").fromNow().split(" ")[0];
Run Code Online (Sandbox Code Playgroud)
说明:
我们收到这样的字符串:'23天前'.将其拆分为数组:['23','days','previous']然后取第一个项目'23'.