【发布时间】:2018-06-21 14:34:24
【问题描述】:
我正在尝试按年龄范围查询猫鼬,我的架构中没有 age,而是 dob。
我想要实现的是:
将age integer 转换为日期(本质上返回生日)。
这可能吗?
【问题讨论】:
我正在尝试按年龄范围查询猫鼬,我的架构中没有 age,而是 dob。
我想要实现的是:
将age integer 转换为日期(本质上返回生日)。
这可能吗?
【问题讨论】:
知道某人的年龄只能对他们的生日有一个限制,例如,如果某人在 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);
不那么模棱两可的是根据出生日期计算某人的年龄。所以我们可以在给定的时间点说出谁超过或低于给定的阈值年龄。
我们可以使用 earlyBirthdate 和 latestBirthdate 进行查询,并说在此范围内出生的任何人都匹配年龄。
JSFiddle 在这里:
【讨论】: