【问题标题】:moment - calculate how long a user needs to wait before hitting a certain age时刻 - 计算用户在达到特定年龄之前需要等待多长时间
【发布时间】:2018-04-04 13:09:35
【问题描述】:

我一直在使用时刻来验证用户是否 15 岁零 9 个月大。

var dobDate = moment($('#dobday').val() + "-" + $('#dobmonth').val() + "-" + $('#dobyear').val(), "DD-MM-YYYY");

var dobday = $('input[name=dobday]').val();
var dobmonth = $('input[name=dobmonth]').val();
var dobyear = $('input[name=dobyear]').val();

age = moment().diff(dobDate, 'years', true);

console.log(age); 

if (((dobday === '' || dobday === undefined) || (dobmonth === '' || dobmonth === undefined) || (dobyear === '' || dobyear === undefined))) {
    $('#qdobDate').addClass('form-group-error error');
    showerror('.dobDate.error-message');
    $('.error-summary').show();
    $('body').scrollTop(0);
    validInput = false;
}
else if ((validInput) && (age >= 15.7499999997) && (changing === "true")) {
    member.questions.dob = dobDate.toISOString();
    go('/firstapp/check-your-answers');
}
else if ((validInput) && (age >= 15.7499999997)) {
    member.questions.dob = dobDate.toISOString();
    go('/firstapp/apply-before');
}
else {
    go('/firstapp/error/age-dropout');
}

退出到“/firstapp/error/age-dropout”后,我希望能够使用他们给我的出生日期来计算他们 15 岁零 9 个月大的日期。

我是新来的,我一直在努力通过谷歌找到答案。

【问题讨论】:

    标签: jquery momentjs


    【解决方案1】:

    在这里你可以检查工作的 JSFiddle,它会返回你的年龄和月份,与出生日期和当前日期有关,

    您只需要注意正确的输入和日期格式。

    例如:var age = getAge("1998/08/08", new Date());

    http://jsfiddle.net/x9paT/932/

    【讨论】:

      【解决方案2】:

      由于您想匹配 15 年和 9 个月,您不妨只计算月数,而不是年数(189 个月比 15.7499..97 年更容易计算)。

      您可以使用moment.diff() 获取自输入生日以来经过的月数(以月为单位),因为您已经使用了多年。 new Date() 指的是今天,如果我们使用birthday.diff(today, 'month'),我们希望得到一个负数(除非输入日期的人来自未来)。我们可以从 189 中减去这个数字,我们将在 Date#setMonth() 的帮助下得到一个新的日期,即从输入的生日算起 15 年零 9 个月。

      var d = 20;
      var m = 10;
      var y = 2010;
      
      var birthday = moment([y, m, d]);
      var when = new Date(); // Today
      
      var months = birthday.diff(when, 'month');
      
      if(months < 0) {
          when.setMonth(189 + months);
          alert(when);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-14
        • 1970-01-01
        • 2014-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多