实现通过php根据身份证获取出生年月日和年龄的函数

一、通过身份证号获取出生年月日的方法

# 1.从身份证中获取出生日期
$stridbirthday = substr($idno, 6, 8);//idno是身份证号 截取日期并转为时间戳
$birthday = substr(stridbirthday,0,4).'-'. substr(stridbirthday,4,2).'-'. substr(stridbirthday,6,2);

二、检测身份证格式并计算年龄

function getAgeFromIdNo($idno=''){if(!isIdno($idno)){return false; }     $btime = strtotime(substr($idno, 6, 8));//idno是身份证号 截取日期并转为时间戳$byear =date('Y',$btime );$bmonth =date('m',$btime );$bday =date('d',$btime );$curYear=date('Y');$curMoth = date('m');$curDay = date('d');$age = $curYear - $byear;if( $curMoth < $bmonth || ($curMoth ==$bmonth && $curDay < $bday)){$age--;}return $age;    }//验证省份证格式是否正确
function isIdno($id){$id = strtoupper($id);$regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";$arr_split = array();if(!preg_match($regx, $id)){return false;}if(15==strlen($id)){//检查15位$regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";@preg_match($regx, $id, $arr_split);//检查生日日期是否正确$dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];if(!strtotime($dtm_birth)) {return false;}else{return true;}}else{//检查18位$regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";@preg_match($regx, $id, $arr_split);$dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];if(!strtotime($dtm_birth)){//检查生日日期是否正确return false;}else{//检验18位身份证的校验码是否正确。//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。$arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);$arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');$sign = 0;for ( $i = 0; $i < 17; $i++ ) {$b = (int) $id{$i};$w = $arr_int[$i];$sign += $b * $w;}$n = $sign % 11;$val_num = $arr_ch[$n];if ($val_num != substr($id,17, 1)) {return false;}else{return true;}}}
}

如有问题,欢迎大家留言沟通,点赞支持!!

php实现根据身份证获取年龄的函数相关推荐

  1. JAVA 根据身份证获取年龄

    JAVA 根据身份证获取年龄 这里我选用了一条19900407的, 今天的日期是2021/04/10 显示的年龄为31岁. private static int getAge(String idCar ...

  2. orcal根据身份证获取年龄

    --根据身份证获取年龄 select   floor(months_between(SYSDATE, to_date(substr2(a.identifynumber, 7, 8), 'yyyy-mm ...

  3. java身份证工具类(校验身份证是否合法、通过身份证获取年龄、性别、生日,将15位身份证转为18位等)

    一.简介 因为工作需要经常用到身份证做一些相关操作,于是通过查阅资料总结出一些常用的工具方法,包括校验身份证是否合法.通过身份证获取年龄.通过身份证获取性别.通过身份证获取户籍地址.通过身份证获取生日 ...

  4. 通过身份证获取年龄和性别

    需要引入commons-lang包 package com.zjx.util;import org.apache.commons.lang.StringUtils;import java.text.S ...

  5. SQL 根据身份证号码获取年龄的函数

    在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的 create or replace function FUNC_COMPARE_SFZ ...

  6. sql根据身份证获取年龄、性别、出生日期等信息

    #属性nl为年龄;sfzh为身份证号;xb 为性别;csrq 为出生日期 #根据身份证计算年龄并修改 update kw_test set nl= (substring(now(),1,4)-subs ...

  7. js通过身份证获取年龄

    // 获取用户的身份证号码let identityCard = this.idNum.replace(/\s+/g, "");//判断长度let len = identityCar ...

  8. vue element-ui 通过身份证获取年龄,出生日期

    页面代码: <el-dialog :title="title" :visible.sync="open" width="700px" ...

  9. js 根据身份证获取出生日期与年龄

    js 根据身份证获取出生日期与年龄 //获取出生日期getBirthdayFromIdCard(idCard) {var birthday = "";if (idCard != n ...

  10. Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳...

    Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下: (1)15位:1-6位为地区代码,7-8 ...

最新文章

  1. C#中使用DateTimePicker控件显示修改日期时间
  2. 流行的jQuery信息提示插件(jQuery Tooltip Plugin)
  3. 【温故知新】CSS学习笔记(三大特性)
  4. Java中集合(一)Collection 、ListE 、ArrayListE
  5. python获取类的类属性_Python中如何获取类属性的列表
  6. c51单片机蜂鸣器程序C语言响,单片机蜂鸣器响生日快乐编程程序
  7. 这11个JavaScript小技巧,你在大多数教程中是找不到的!
  8. linux线程同步 eventfd,用 eventfd 在线程之间通信
  9. 基于wincc的虚拟电梯设计_基于WinCC的电梯PLC控制仿真.doc
  10. 给mBlock添加扩展模块
  11. 原油期货开户条件和流程是什么?
  12. Calendar 设置周一为每周第一天
  13. 分享8个免费的超清背景图片下载网站
  14. centos 7.6 安装mariadb
  15. 蓝桥杯2020第二场JAVA C真题
  16. 程序员视角m1 Macbook air使用指南和指令备忘录
  17. Kafka3.0 提交offset方式
  18. 黑马程序员————IO流2(day19)
  19. 离线语音识别库_离线语音识别_离线语音识别sdk - 云+社区 - 腾讯云
  20. python做人工智能对话_如何用Python制作聊天机器人?

热门文章

  1. 软件登录账号信息 删除
  2. 关于后台模块的理解。
  3. selenium1、selenium2 示例代码(java版)
  4. 2、RH850外设时钟选择及配置
  5. java运动控制卡_运动控制卡应用开发教程之VB6.0
  6. MacBook双开微信原来这么简单
  7. 什么软件测试情侣头像,扫图查情侣头像软件
  8. 用Python弹奏周董的《菊花台》是什么效果
  9. Xshell 官网免费版下载
  10. PageRank算法(Dead ends、Spider Traps问题)