在 JavaScript 中计算/检查出生日期小于 110 岁
Posted
技术标签:
【中文标题】在 JavaScript 中计算/检查出生日期小于 110 岁【英文标题】:calculate/check date of birth is less than 110 years old in JavaScript 【发布时间】:2014-11-25 14:08:33 【问题描述】:我有一个这样的日期数组:
var dateArray = ["1965-12-29", "1902-11-04", "1933-10-21", "1983-10-16"];
我想做的是检查/计算每个出生日期元素,以查看仅基于年份的年龄是否小于 110 岁。如果年龄大于 110 岁(也仅基于年份),那么我希望从 dateArray 中删除/删除此元素。
基本上,我要做的是在 javascript 中转换以下 SQL 代码:
FROM TABLE X
WHERE TO_CHAR(DOB, 'YYYY') > (TO_CHAR(TO_DATE('2014/09/30', 'YYYY/MM/DD'), 'YYYY') - 110)
非常感谢。
【问题讨论】:
遍历数组,创建一个日期对象,进行比较。 您好,谢谢您的回复,您能帮忙比较一下吗?谢谢... JS新手 【参考方案1】:使用the .getFullYear()
method of Date type:
for(var i=0;i<dateArray.length;i++)
var now = new Date();// or specify any date you want with new Date("2014/10/15");
var birth = new Date(dateArray[i]);
var age = now.getFullYear() - birth.getFullYear();
//then use the age var and test if it's bigger than 110
应该可以的。
【讨论】:
【参考方案2】:我会这样做:
var dateArray = ["1965-12-29", "1902-11-04", "1933-10-21", "1983-10-16"];
dateArray = removeOldPeople(dateArray);
function removeOldPeople(dateArray)
//looping backwards because I delete items from array in loop
for(var i = dateArray.length -1 ; i >=0 ; i--)
var dateString = dateArray[i].split("-");
var year = dateString[0];
var month = parseInt(dateString[1])-1;
var day = dateString[2];
var age = calculateAge(day, month, year);
if(age >= 110)
dateArray = dateArray.splice(i);
function calculateAge(birthMonth, birthDay, birthYear)
todayDate = new Date();
todayYear = todayDate.getFullYear();
todayMonth = todayDate.getMonth();
todayDay = todayDate.getDate();
age = todayYear - birthYear;
if (todayMonth < birthMonth - 1)
age--;
if (birthMonth - 1 == todayMonth && todayDay < birthDay)
age--;
return age;
【讨论】:
Hazaart ...我忘了说,参数日期值将被传入,例如'2014/09/30',并且基于那一年(例如,2014),一切都应该进行计算。感谢您的帮助。以上是关于在 JavaScript 中计算/检查出生日期小于 110 岁的主要内容,如果未能解决你的问题,请参考以下文章