function adult(date){ var elems = date.split('-'), today = new Date(), year = today.getFullYear(), month = today.getMonth() + 1, day = today.getDate() if (+elems[0]+18 < year) { return true }else if(+elems[0]+18 > year){ return false }else{ if (+elems[1] < month) { return true }else if(+elems[1] < month){ return false }else{ if (+elems[2] < day) { return true }else{ return false } } } }
例子:若今日为“2017-10-10”,生日为“1999-10-9”,思路如下,
"2017-10-10" => "1999-10-10" => "19991010" "1999-10-9" => "1999-10-09" => "19991009" "19991009" - "19991010" = -1 < 0(返回true)
代码实现
function format(num){ return num.toString().replace(/^(\d)$/, "0$1"); } function isAdult(birthday){ var n = new Date(), b = birthday.replace(/\-(\d{1})(\b)/g, "-0$1").replace(/\-/g,""), t = (n.getFullYear()-18) + format(n.getMonth()+1) + format(n.getDate()); return (b - t <= 0); }
function isAdult(birthday){ let [birYear, birMonth, birDate] = birthday.split("-"); let today = new Date(); let [Y,M,D] = [today.getFullYear(), today.getMonth() + 1, today.getDate()]; if(Y - birYear < 18){ return false; }else if(Y - birYear === 18){ if(M - birMonth < 0){ return false; }else if(M - birMonth === 0){ if(D - birDate < 0){ return false; } } } return true; }
function isChengnian(year,month,date){ var day=new Date(), yearNow=day.getFullYear(), monthNow=day.getMonth()+1, dateNow=day.getDate(); if(yearNow-year>18||(yearNow-year==18 && monthNow>month)|| (yearNow-year==18 && monthNow==month && dateNow>date)){ return true; }else{ return false; } } console.log(isChengnian(1999,10,28)); //true console.log(isChengnian(1999,10,29)); //false console.log(isChengnian(1999,10,30)); //false
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3</title>
</head>
<body>
<script>
// 分割时间字符串
function dateFormat(date) {
var dateArr = date.split('-');
return dateArr;
}
/* 补0操作 */
function zeroFormat(date) {
return date > 10 ? date : '0' + date;
}
/* 判断是否大于18 */
function isYear(year) {
var currentDate = new Date();
var flagDate = dateFormat(year);
var currentYear = currentDate.getFullYear();
var currentMon = zeroFormat(currentDate.getMonth() + 1);
var currentDay = zeroFormat(currentDate.getDate());
var flagYear = flagDate[0];
var flagMon = flagDate[1];
var flagDay = flagDate[2];
if (currentYear - flagYear > 18) {
return true;
} else if (currentYear - flagYear === 18 && currentMon > flagMon) {
return true;
} else if (currentYear - flagYear === 18 && currentMon === flagMon && currentDay > flagDay) {
return true;
} else {
return false;
}
}
console.log(isYear('2000-01-05'));
console.log(isYear('1999-02-14'));
console.log(isYear('1999-02-13'));
console.log(isYear('1989-12-26'));
</script>
</body>
</html>
function isOlderThanEighteen(ageStr){ var ageArr=ageStr.split("-"); if(ageArr.length<3){return;} var minus=Date.UTC(2018,0,0,0,0,0)-Date.UTC(2000,0,0,0,0,0);//18年之间差的秒数 var dateNow=Date.now(); var ageSeconds=Date.UTC(ageArr[0],ageArr[1]-1,ageArr[2]);//生日的秒数 return dateNow-ageSeconds>minus? true : false ; }//精确到小时
function getAge(str) { var y = new Date().getFullYear() - str.split('-')[0]; if(y > 18) { return true; }else{ return false; } } getAge('2017-4-4'); //只要大于18就行了
function ageJudge(birth){ var data = new Date(); var year = data.getFullYear(); var month = data.getMonth()+1; var day = data.getDate(); var year2 = parseInt( birth.split("-")[0] ); var month2 = parseInt( birth.split("-")[1] ); var day2 = parseInt( birth.split("-")[2] ); if((year-year2)>18){ return true; }else if((year-year2)<18){ return false; }else{ if((month-month2)<0){ return false; }else if((month-month2)>0){ return true; }else{ if((day-day2)<0){ return false; }else if((day-day2)>=0){ return true; } } } }
var getAge = function(born) { var bornYear = born.substring(0,4); if(bornYear == undefined) { console.log("false"); } var date = new Date; var currentYear = date.getFullYear(); var age = currentYear - bornYear; if(age >= '18') { console.log("true"); }else { console.log("false"); } };
var fmt_date = function(date){ if(!date) return; var arr = date.split(/[- : \/]/); if(arr.length < 6){ while(arr.length <= 6){ arr.push(0) } } return arr; } var com = function(year){ var birth = fmt_date(year); var now = new Date(), year = now.getFullYear(), month = now.getMonth() + 1, day = now.getDate(); if(year - birth[0] > 18){ return true; }else if(year - birth[0] == 18 && month - birth[1] > 0){ return true; }else if(year - birth[0] == 18 && month - birth[1] == 0 && day - birth[2] > 0){ return true; }else{ return false; } } console.log(com('1999-09-01')); console.log(com('1999-08-22')); console.log(com('1999-08-24')); console.log(com('1999-08-23'));
var date = prompt("日期:"); var dateArray; var year; var month; var day; var nowArray; var nowYear; var nowMonth; var nowDay; function isAdult() { if(nowYear-year > 18){ return true; }else if(nowYear-year < 18){ return false; }else{ if(nowMonth>month){ return true; }else if(nowMonth<month>=day){ return true; }else{ return false; } } } } if(date.length!=0) { dateArray = date.split("-"); year = dateArray[0]; month = dateArray[1]; day = dateArray[2]; nowArray = new Date().toLocaleDateString().split("/"); nowYear = nowArray[0]; nowMonth = nowArray[1]; nowDay = nowArray[2]; alert(isAdult()); } </month>
function isOld(date){ var time = date.split('-'); var nowTime = new Date(); if(nowTime.getFullYear() - time[0] > 18){ return true; }else if(nowTime.getFullYear() - time[0] < 18){ return false; } if(nowTime.getMonth() + 1 > time[1]){ return true; }else if(nowTime.getMonth() + 1 < time[1]){ return false; } if(nowTime.getDate() >= time[2]){ return true; } return false; } console.log(isOld('2000-01-05')); console.log(isOld('1999-02-14')); console.log(isOld('1999-02-13')); console.log(isOld('1989-12-26'));
function isOld_18(str){ var time1=new Date(Date.parse(str)); var now=new Date(); if(now.getFullYear()-time1.getFullYear()>18){ return true; }else if(now.getFullYear()-time1.getFullYear()==18){ if(now.getMonth()-time1.getMonth()>0){ return true; }else if(now.getMonth()-time1.getMonth()==0){ if(now.getDay()-time1.getDay()>=0){ return true; }else{ return false; } }else{ return false; } }else{ return false; } }