我想检查输入的年龄是否为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位数年份做到这一点。
答案 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;
答案 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;