[英]How to check user's age with Javascript based on 3 seperate inputs
我有3个单独的输入,分别是日,月和年。 页面加载只需要显示年份,用户只需要先填写年份即可。
目前,我可以通过简单地检查年份来检查某人是16岁以上还是16岁以下。
checkAge() {
let yearOfBirth = new Date().getFullYear() - this.form.dobYear;
if (yearOfBirth > 16) {
this.isSixteen = false;
this.belowSixteen = false;
}
}
当比较当前年份减去用户输入时,如果等于16,则我有两个选择元素显示日期和月份,这两个都需要填写。
在这里,我需要比较用户输入的值,以查看年龄是否确实为16岁,例如,如果距离他们16岁生日只有几个月的时间,那么我希望他们被视为16岁以下,否则将他们显示为16岁。
如果有帮助,我也使用BootstrapVue和Vue.js。
获取当前Date
var base=new Date();
减少16年
base.setFullYear(base.getFullYear()-16);
根据用户输入创建Date
对象
var birthday=new Date(y,m,d);
比较两个
if(birthday.getTime()<=base.getTime())
// ok
else
// not ok
function check(event){ var base=new Date(); res.innerText="It is "+base; base.setFullYear(base.getFullYear()-16); res.innerText+="\\n16 years ago it was "+base; var bday=event.target.valueAsDate; if(bday) res.innerText+="\\nVerdict: "+(bday.getTime()<base.getTime()?"Okay":"Too young"); }
Birthday: <input type="date" oninput="check(event)" value="0"><br> <div id="res"></div>
要仅检查年份:
function calculateYearDiff(y){ // birthday year
return (new Date()).getUTCFullYear() - y;
}
^这将返回从现在到给定年份的年份之间的差异。
要查看完整的生日日期:
function calculateAge(y,m,d){ // birthday year, month, day
var birthday = new Date(y + '-' + m + '-' + d);
var ageDifMs = Date.now() - birthday.getTime();
var ageDate = new Date(ageDifMs);
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
^这将从给定的生日到现在返回整年。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.