繁体   English   中英

如何基于3个单独的输入使用JavaScript检查用户的年龄

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM