我一直在用时间验证用户是否是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个月的日期。
我是新手,我很难通过谷歌找到答案。
答案 0 :(得分:0)
在这里你可以检查工作的JSFiddle,它会返回关于DOB和当前日期的年龄和月份,
您只需要处理正确的输入和日期格式。
例如:var age = getAge("1998/08/08", new Date());
答案 1 :(得分:0)
由于你想要匹配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);
}