vue根据身份证获取年龄/生日/性别,根据年龄获取生日,根据生日获取年龄

首先根据身份证获取年龄/生日/性别

复制代码
 handleBlur(data) {
      let idCard = data.target.value;
      let sex = null;
      let birth = null;
      let myDate = new Date();
      let month = myDate.getMonth() + 1;
      let day = myDate.getDate();
      let age = 0;

      if (idCard.length === 18) {
        age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
        sex = idCard.substring(16, 17);
        birth =
          idCard.substring(6, 10) +
          "-" +
          idCard.substring(10, 12) +
          "-" +
          idCard.substring(12, 14);
        if (
          idCard.substring(10, 12) < month ||
          (idCard.substring(10, 12) === month && idCard.substring(12, 14) <= day)
        ) {
          age++;
        }
      } else if (idCard.length === 15) {
        age = myDate.getFullYear() - idCard.substring(6, 8) - 1901;
        sex = idCard.substring(13, 14);
        birth =
          "19" +
          idCard.substring(6, 8) +
          "-" +
          idCard.substring(8, 10) +
          "-" +
          idCard.substring(10, 12);
        if (
          idCard.substring(8, 10) < month ||
          (idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day)
        )
          age++;
      }

      if (sex % 2 === 0) {
        sex = 2;
      } else {
        sex = 1;
      }

      this.formData.customerAge = age;
      this.formData.gender = sex;
      this.formData.birthday = birth;
    },

根据年龄获取生日,年份根据年龄算,月日取当天日期

复制代码
function calculateBirthdate(age) {
  // 获取当前日期
  const currentDate = new Date();

  // 获取当前年份
  const currentYear = currentDate.getFullYear();

  // 计算出生年份
  const birthYear = currentYear - age;

  // 获取当前月份和日期
  const currentMonth = currentDate.getMonth() + 1; // 月份是从0开始的,所以要加1
  const currentDay = currentDate.getDate();

  // 构建出生日期的字符串
  const birthdate = `${birthYear}-${currentMonth}-${currentDay}`;

  return birthdate;
}

// 示例用法
const age = 25; // 用你实际的年龄替换
const birthdate = calculateBirthdate(age);
console.log(birthdate);

根据生日获取年龄

复制代码
function calculateAge(birthdate) {
  // 将出生日期字符串转换为日期对象
  const birthDateObj = new Date(birthdate);

  // 获取当前日期
  const currentDate = new Date();

  // 计算年龄
  let age = currentDate.getFullYear() - birthDateObj.getFullYear();

  // 考虑生日还未到的情况
  const currentMonth = currentDate.getMonth() + 1; // 月份是从0开始的,所以要加1
  const birthMonth = birthDateObj.getMonth() + 1;

  if (currentMonth < birthMonth || (currentMonth === birthMonth && currentDate.getDate() < birthDateObj.getDate())) {
    age--;
  }

  return age;
}

// 示例用法
const birthdate = '1990-05-15'; // 用实际的出生日期替换
const age = calculateAge(birthdate);
console.log(age);
相关推荐
东方小月16 分钟前
从零开发一个 Coding Agent(八):如何使用 Agent 类管理对话状态
前端·人工智能
张元清36 分钟前
React useEventSource Hook:自带断线重连的 Server-Sent Events (2026)
javascript·react.js
光影少年38 分钟前
RN 网络请求:Fetch / Axios 封装、超时、拦截器
前端·react native·react.js
学习星球1 小时前
Vue 3 实战:拆解 RealWorld 项目
前端·vue.js
铁皮饭盒1 小时前
网页端, 6.5MB人脸识别模型, 谷歌框架, 又快又准
前端·javascript·后端
xiaohaiAIgeo1 小时前
【2026年】ASHRAE 110与EN 14175通风柜测试标准对比:进口与国产品牌性能差距
java·前端·数据库·科普知识
自进化Agent智能体1 小时前
Hermes 工具与工具集——Hermes 的内置能力
javascript
用户2930750976692 小时前
TypeScript 必考题:Type 与 Interface 全面对比
前端
hunterandroid2 小时前
[鸿蒙从零到一] HarmonyOS 媒体能力实战:图片、音频与视频处理
前端
打呵欠的猫2 小时前
我让 AI 封装了一个 ImageUpload 组件,它设计的 5 层校验链路比我想的周全
前端·ai编程