function getDate(date) {let d = new Date(date);// 将日期设置为下月一号d.setMonth(d.getMonth() + 1);d.setDate('1');// 获取本月最后一天d.setDate(d.getDate() - 1);return d.getDate();}function getAge(birthday, lastDay) {// 先截取到字符串中的年、月、日let selectYear = birthday.split('-')[0]let selectMonth = birthday.split('-')[1]let selectDay = birthday.split('-')[2]// 得到当前时间的年、月、日let cal = lastDay === '' ? new Date() : new Date(lastDay);let yearNow = cal.getFullYear();let monthNow = cal.getMonth() + 1;let dayNow = cal.getDate();// 用当前年月日减去生日年月日let yearMinus = yearNow - selectYear;let monthMinus = monthNow - selectMonth;let dayMinus = dayNow - selectDay;let age = '';if (yearMinus < 0) {return "生日不可小于当前时间"} else {if (yearMinus === 0) {if (monthMinus < 0) {return '生日不可小于当前时间'} else {if (monthMinus > 0) {if (dayMinus >= 0) {return monthMinus + '个月' + (dayMinus > 0 ? dayMinus + '天' : '')}return ((monthMinus - 1) === 0 ? '' : (monthMinus - 1) + '个月') + (dayNow + (getDate(birthday) - selectDay)) + '天'} else {if (dayMinus < 0) {return '生日不可小于当前时间'}return dayMinus + '天'}}} else {age = yearMinus + '岁'if (monthMinus === 0) {if (dayMinus >= 0) {return age + (dayMinus === 0 ? '' : dayMinus + '天')}return (yearMinus - 1 === 0 ? '' : yearMinus - 1 + '岁') + '11个月'} else if (monthMinus > 0) {age += (dayMinus >= 0 ? monthMinus + '个月' : (monthMinus - 1 > 0 ? monthMinus + '个月' : (getDate(birthday) - selectDay + dayNow + '天')))return age;} else {return (yearMinus - 1 === 0 ? '' : yearMinus - 1 + '岁') + (12 - selectMonth + monthNow) + '个月'}}}}console.log(getAge('2021-04-29', '2022-05-21'))

查了一下,很多人写的计算式错的,重写了一个,试试先,目前测试是没问题的,有问题可以给我留言

JS 根据生日计算年龄(年月天)相关推荐

  1. vue js根据生日计算年龄(包含阳历和农历)

    changeAge(val) {let currentYear = new Date().getFullYear() //当前的年份let calculationYear = new Date(val ...

  2. js生日计算年龄_JS根据生日算年龄的方法

    本文实例讲述了JS根据生日算年龄的方法.分享给大家供大家参考.具体实现方法如下: 错误!'); } } function GetAgeByBrithday(birthday){ var age=-1; ...

  3. JSP自定义标签 函数,实现生日计算年龄

    在Spring+hibernate的框架中,通过生日计算年龄比较麻烦,通过SQL计算年龄也可以实现,还是挺麻烦的,测试过几种方法后,还是在显示层,通过JSP的自定义标签实现比较简单. 1.创建标签的处 ...

  4. php生日计算年龄,php根据生日计算年龄的方法

    摘要:本文实例讲述了php根据生日计算年龄的方法.分享给大家供大家参考.具体如下:<?php function birthday($birthday){ $age = strtotime($bi ...

  5. 【转载】Sqlserver根据生日计算年龄

    在Sqlserver中,可以根据存储的出生年月字段计算出该用户的当前年龄信息,主要使用到DateDiff函数来实现.DateDiff函数的格式为DATEDIFF(datepart,startdate, ...

  6. js生日计算年龄_如何提取身份证生日和年龄,几行VBA代码教你学会

    No.1 身份证里包含了个人生日信息,根据生日也可以计算出年龄. 办公过程中,如果一个一个信息录入,是不是显得十分疲劳. 如果遇到这样有规律的工作,还是交给电脑来做更有优势. 下面介绍一下,如何在身份 ...

  7. js生日计算年龄_用T-SQL计算明细年龄问题.

    提前说一下,有一个bug,就是出生日期等于getdate()的时候,由于没有精确到时分秒,而无法计算年龄. 过几天补上. /*计算明细年龄问题*/DECLARE @ADATE DATETIME, @B ...

  8. js生日计算年龄_生男生女计算公式超准

    生男生女的计算公式是怎样的?如何通过计算公式准确的推算出你怀的是男孩还是女孩呢?据说生男生女的公式超准确度99%,这么简单又准确的计算方法你确定不用吗? 一.生男生女计算公式: 1:怀孕农历月份双乘+ ...

  9. js生日计算年龄_你知道用EXCEL可以从身份证中提取生日、性别、年龄、生肖吗?...

    首先我们先了解下中国身份证号码的编排规则,中国公民身份证共18位,1~6位为省份地区信息码:7~14位为出生日期码:15~16位数字表示所在地的派出所的代码:第17位数字表示性别(奇数表示男性,偶数表 ...

最新文章

  1. gridview格式化日期字段
  2. Python基础知识4--数据结构(树)
  3. 卷积的物理意义(经典)
  4. java中用字节流读取文本时中文乱码
  5. 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<基础篇>
  6. Linux 下获取 IP 和 MAC Adr 的方法
  7. SuperSocketClientEngine
  8. MVVM架构~knockoutjs系列之扩展ajax验证~验证输入数据是否与后台数据相等
  9. 使用DIME协议上传文件
  10. XCodeGhost 病毒检查方法
  11. 江苏计算机编程中小学,编程教育走进小学低年级
  12. 风暴数码论坛教程--精简APK/图片/铃声
  13. python调用word报错,提示“服务器运行失败”,现已解决
  14. tomcat jquery mysql_Docker 搭建 Tomcat + Mysql
  15. nodejs+vue+elementui摄影作品图片展示交流网站express
  16. searchsploit 漏洞搜索
  17. Oracle数据库之创建序列
  18. oracle分区注意点,ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项
  19. Android商城开发--实现商城底部导航栏
  20. 第七章:函数实训【寒假作业】

热门文章

  1. Unity3D学习——射箭游戏(工厂模式)
  2. 高级篇——数据库调优步骤(性能分析工具)
  3. 敏捷其实很简单3---敏捷方法之scrum
  4. 学生开题答辩农学专业绿色简约
  5. Ubuntu 安装ATI显卡驱动12.4失败的解决方法
  6. C#面试时被人问你是如何优化你的代码的,该从哪些方面进行回答?
  7. 四路红外避障模块使用
  8. Java中同步和异步的区别是什么?优点缺点以及概念理解
  9. AppScan安全问题解决方案
  10. ERP软件排名、如何选择适合自己企业的软件?