【问题标题】:Parse age integer to date with moment.js使用 moment.js 解析迄今为止的年龄整数
【发布时间】:2018-06-21 14:34:24
【问题描述】:

我正在尝试按年龄范围查询猫鼬,我的架构中没有 age,而是 dob。 我想要实现的是: 将age integer 转换为日期(本质上返回生日)。

这可能吗?

【问题讨论】:

    标签: node.js mongoose momentjs


    【解决方案1】:

    知道某人的年龄只能对他们的生日有一个限制,例如,如果某人在 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 在这里:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 2017-08-14
      • 2011-01-26
      • 2014-03-07
      • 1970-01-01
      相关资源
      最近更新 更多