js根据出生日期计算年龄及根据年龄计算出生日期

1.根据日期算年龄

javascript 复制代码
function mymethod(birthday){
  if(birthday){
    var str = birthday
    birthday=birthday.split('-');
    // 新建日期对象
    let date = new Date()
    // 今天日期,数组,同 birthday
    let today = [date.getFullYear(), date.getMonth() + 1, date.getDate()]
    // 分别计算年月日差值
    let age = today.map((val, index) => {
        return val - birthday[index]
    })
    // 当天数为负数时,月减 1,天数加本月总天数
    if (age[2] < 0) {
        // 获取当月总天数的方法
        let curMonth = new Date(today[0], today[1], 0)
        age[1]--
        age[2] += curMonth.getDate()
    }
    // 当月数为负数时,年减 1,月数加上 12
    if (age[1] < 0) {
        age[0]--
        age[1] += 12
    }
    console.log('出生日期:' + str + "  岁数:" + age[0]+'岁'+age[1]+'月'+age[2]+'天');
  }
}
mymethod('2020-12-06') // 出生日期:2020-12-06  岁数:1岁5月18天

2.根据年龄算日期

ini 复制代码
function myfunction(ageYear,ageMonth,ageDay){//根据年龄算日期
  var subYear = parseInt(ageYear); 
  var subMonth = parseInt(ageMonth); 
  var subDay = parseInt(ageDay); 
  var now = new Date(); 
  var nowYear = now.getFullYear(); 
  var nowMonth = now.getMonth()+1; 
  var nowDay = now.getDate(); // 按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。 
  var day = nowDay - subDay; 
  var month = nowMonth - subMonth; 
  var year = nowYear - subYear; // 检查是否溢出 
  if(day<=0){ // 获得上月的天数 
    var lastMonth = nowMonth - 1; 
    var lastMonthOfYear = nowYear; 
    if(lastMonth<=0){ 
      lastMonth =lastMonth + 12 //(lastMonth + 12) % 12; 
      lastMonthOfYear = lastMonthOfYear - 1;
    } 
    day = day + new Date(lastMonthOfYear, lastMonth, 0).getDate(); 
    month = month - 1; 
  } 
  if(month<=0){ 
    month =month + 12 //(month + 12) % 12; 
    year--; 
  } 
  if(month<10){
    month='0'+month
  }
  if(day<10){
    day='0'+day
  }
  console.log(year+'-'+month+'-'+day);
}
myfunction(1,10,20)

感谢:juejin.cn/post/710112...

相关推荐
Highcharts.js8 分钟前
用Highcharts如何动态向一个序列添加点
前端·javascript·react.js·highcharts
HookJames14 分钟前
设计Section 09 · Cost & Lead Time Factors 的完整 Block Editor 操作步骤
前端
玖玖passion41 分钟前
React 常用 Hooks 函数及使用方法完全指南(useState / useEffect / useRef / useContext / useCallback / useMemo / useReducer)
前端·javascript
Awu12271 小时前
⚡精通Claude第6课-Hooks钩子系统:从前端视角玩转AI自动化工作流
前端·aigc·claude
椰猫子1 小时前
Spring Framework(Bean)
java·前端·spring
道清茗1 小时前
【RH294知识点汇总】第 7 章 《 使用角色和 Ansible 内容集合简化 Playbook 》
java·前端·ansible
TechMasterPlus1 小时前
Hermes 深度解析:React Native 高性能 JavaScript 引擎实践指南
javascript·react native·react.js
前端那点事1 小时前
彻底弄懂async/await!解决回调地狱,Vue异步开发必备(超全实战)
前端·vue.js
VagueVibes1 小时前
Openclaw 快速接入 DeepSeek V4 Pro 指南
javascript
A_nanda1 小时前
VS2022安装QT6.5.3后,如何更新项目配置
前端·javascript·vue.js