×

计算年龄

96
静候那一米阳光
2017.08.23 20:35 字数 16

计算年龄

返回距离出生x年y月z日

function getAge(birthday) {
  var now = new Date();
  var birth = new Date(birthday);
  //还没有出生
  if (now - birth < 0) {
    return -1;
  }
  //获取当前月份天数 下个月的第零天就是这个月份的最后一天
  var days = new Date(now.getFullYear(), now.getMonth() + 1, 0).getDate();
  var yearDiff = now.getFullYear() - birth.getFullYear();
  var monthDiff = now.getMonth() - birth.getMonth();
  var dateDiff = now.getDate() - birth.getDate();
  //不足一月退位
  if (dateDiff < 0) {
    dateDiff = days + dateDiff;
    monthDiff--;
  }
  //不足一年退位
  if (monthDiff < 0) {
    monthDiff = 12 + monthDiff;
    yearDiff--;
  }
  return ({ year: yearDiff, month: monthDiff, date: dateDiff });
}

getAge('1994-12-25');//{year: 22, month: 7, date: 29}即出生已经22年7个月零29天了,即22周岁
前端
Web note ad 1