在 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 岁的主要内容,如果未能解决你的问题,请参考以下文章

出生日期小于 18 的淘汰赛 JS 验证

Java 根据出生日期获得年龄

Java 根据出生日期获得年龄

使用 javascript 验证 HTML 表单中的条件

如何使用jquery检查日期不能小于当前日期?

在 SQL 和 VB.NET 中检查日期是不是小于另一个