当前位置: 首页 > article >正文

【js常用函数封装】获取年龄,根据身份证获取年龄,性别,生日

根据用户输入的年月日生日获取年龄

function getBirthStrToAge(birth) {
  if(birth){
    let today = new Date(); // 获取当前日期时间
    let birthdate = new Date(birth); // 将生日字符串转换为日期格式
    
    let age = today.getFullYear() - birthdate.getFullYear(); // 根据年份计算年龄
  
    if (today < birthdate || today.getMonth() < birthdate.getMonth()) {
        age--; // 如果今天的月份小于生日的月份或者今天的日期小于生日的日期,则年龄需要减1
    }
    return age
  }else{
    return null
  }
}
const age = getBirthStrToAge("2002-09-19")
console.log(age); // 22

根据身份证号获取年月日

function getBirthBySfzh(sfzh) {
  const year= sfzh.substr(6, 4); // 身份证年
  const month = sfzh.substr(10, 2); // 身份证月
  const date = sfzh.substr(12, 2); // 身份证日
  const birth = `${year}-${month}-${date}`;
  return birth;
};

const str = getBirthBySfzh("110105200508304224")
console.log(str); // 2005-08-30

根据身份证获取年龄

function getAge(identityCard) {
  var len = (identityCard + "").length;
  if (len == 0) {
    return 0;
  } else {
    if ((len != 15) && (len != 18))//身份证号码只能为15位或18位其它不合法
    {
      return 0;
    }
  }
  var strBirthday = "";
  if (len == 18)//处理18位的身份证号码从号码中得到生日和性别代码
  {
    strBirthday = identityCard.substr(6, 4) + "/" + identityCard.substr(10, 2) + "/" + identityCard.substr(12, 2);
  }
  if (len == 15) {
    strBirthday = "19" + identityCard.substr(6, 2) + "/" + identityCard.substr(8, 2) + "/" + identityCard.substr(10, 2);
  }
  //时间字符串里,必须是“/”
  var birthDate = new Date(strBirthday);
  var nowDateTime = new Date();
  var age = nowDateTime.getFullYear() - birthDate.getFullYear();
  if (nowDateTime.getMonth() < birthDate.getMonth() || (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate())) {
    age--;
  }
  return age;
}
const age = getAge("110105200508304224")
console.log(age); // 19

身份证号获取性别

function checkGender(idCardNumber) {
	 // 获取身份证号码倒数第二位
	 var lastDigit = idCardNumber.slice(-2, -1);
	
	 // 判断奇偶性,并返回性别
	 if (lastDigit % 2 === 0) {
	   return "F";
	 } else {
	   return "M";
	 }
}

const sex = checkGender("110105200508304224")
console.log(sex); // F

http://www.kler.cn/a/314947.html

相关文章:

  • debian 系统更新升级
  • 硬件工程师之电子元器件—二极管(4)之热量对二极管温度特性的影响
  • python 同时控制多部手机
  • Postman上传图片如何处理
  • Axure设计之文本编辑器制作教程
  • TortoiseSVN提示服务器凭证检核错误:站点名称不符
  • 算法笔试-编程练习-好题-07
  • 《MmAP : Multi-Modal Alignment Prompt for Cross-Domain Multi-Task Learning》中文校对版
  • Homebrew安装与切换下载源
  • 单例模式(饿汉式-懒汉式)
  • leetcode:3232. 判断是否可以赢得数字游戏(python3解法)
  • FastDFS架构和原理
  • RabbitMQ:交换机详解(Fanout交换机、Direct交换机、Topic交换机)
  • Linux实用命令 df和du命令
  • 数据结构之‘栈’
  • 面向对象程序设计
  • VisionPro - 基础 - 模板匹配技术-Search/PMAlign/PatMax(6)-纹理屏蔽和重叠匹配
  • Redis面试真题总结(四)
  • 多模态交互才是人机交互的未来
  • MoFA: 迈向AIOS
  • 【QGIS入门实战精品教程】6.1:QGIS根据属性条件查询数据(SQL表达式)
  • 如何在GitHub上Clone项目:一步步指南
  • 暑假考研集训营游记
  • 李宏毅机器学习2023-HW13-Network Compression
  • 4.《DevOps》系列K8S部署CICD流水线之Helm部署Harbor私人镜像仓库
  • 机器学习中求解模型参数的方法