使用moment.js解析年龄整数以至今

时间:2018-06-21 14:34:25

标签: node.js mongoose momentjs

我正在尝试按年龄范围查询猫鼬,我的模式中没有age,但是有dob。 我想要达到的是: 将age integer转换为日期(以essentailly返回生日)。

这可能吗?

1 个答案:

答案 0 :(得分:0)

知道某人的年龄只能限制我们的出生日期,例如,如果某人在2018年6月1日是30岁,则他们出生于1988年初或1987年底。 我们知道他们的最新生日是1988年6月1日。我们也知道他们最早的生日是1987年6月2日。

Moment.js为我们提供了一些不错的方法来根据时差计算日期。

例如:

var ageYears = 30;
var latestBirthdate = new moment().add(moment.duration(-ageYears, 'years')).startOf('day');
var earliestBirthdate = new moment().add(moment.duration(-(ageYears + 1), 'years')).add(moment.duration(1, 'days')).startOf('day');

var ageRange = earliestBirthdate.format("DD MMM, YYYY") + ' to ' + latestBirthdate.format("DD MMM, YYYY");

console.log(ageRange);

比较明确的是根据某人的DOB来计算其年龄。因此,我们可以在给定的时间点确定谁是超过或低于给定的阈值年龄。

我们可以使用earlyestBirthdate和latestBirthdate进行查询,并说在此范围内出生的任何人都与年龄匹配。

JSFiddle在这里:

https://jsfiddle.net/hLypn9s1/22/