使用JavaScript使用2位数年份的年龄验证

时间:2018-01-12 10:40:51

标签: javascript

我想检查输入的年龄是否为18岁或以上。我使用JavaScript来获取日期月份和年份值。年份是2位数。我想查看它的年龄。

var dd = document.getElementById('age_dd').value;
var mm = document.getElementById('age_mm').value;
var yy = document.getElementById('age_yy').value; //giving 2 digit year

var dt = new Date();  //todays date

如果我有4位数的年份,我可以用简单的方式做到这一点,但我很困惑如何用2位数年份做到这一点。

2 个答案:

答案 0 :(得分:0)

这很有效。

date.getMonth()+1 - >由于js日期返回索引为0的月份,因此添加了1。



var date = new Date("1994-11-19");
var isvalid = new Date(date.getFullYear()+18,date.getMonth()+1,date.getDate()) <= new Date();
console.log(isvalid);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

根据您的评论

  

在这种情况下,我们必须从今天开始服用80年   在此之前应该被认为是错误的输入

如果yy的值大于当前年份yy而不是19xx而不是20xx

,您似乎认为

将值转换为数字

var dd = +document.getElementById('age_dd').value; //using unary + to convert to number
var mm = +document.getElementById('age_mm').value; //using unary + to convert to number
var yy = document.getElementById('age_yy').value; //using unary + to convert to number

var dt = new Date();  //todays date

根据yy值获取前缀

yy = Number(+yy < ( dt.getFullYear() % 100 ) ? "20" + yy : "19" + yy);  

根据输入的DOB获取日期对象。

var birthDate = new Date( yy, mm - 1, dd );

现在终于获得多年的差异

var isOlderThan18 = (dt.getFullYear() -  birthDate.getFullYear()) > 18;