php实现根据身份证获取年龄的函数
实现通过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实现根据身份证获取年龄的函数相关推荐
- JAVA 根据身份证获取年龄
JAVA 根据身份证获取年龄 这里我选用了一条19900407的, 今天的日期是2021/04/10 显示的年龄为31岁. private static int getAge(String idCar ...
- orcal根据身份证获取年龄
--根据身份证获取年龄 select floor(months_between(SYSDATE, to_date(substr2(a.identifynumber, 7, 8), 'yyyy-mm ...
- java身份证工具类(校验身份证是否合法、通过身份证获取年龄、性别、生日,将15位身份证转为18位等)
一.简介 因为工作需要经常用到身份证做一些相关操作,于是通过查阅资料总结出一些常用的工具方法,包括校验身份证是否合法.通过身份证获取年龄.通过身份证获取性别.通过身份证获取户籍地址.通过身份证获取生日 ...
- 通过身份证获取年龄和性别
需要引入commons-lang包 package com.zjx.util;import org.apache.commons.lang.StringUtils;import java.text.S ...
- SQL 根据身份证号码获取年龄的函数
在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的 create or replace function FUNC_COMPARE_SFZ ...
- sql根据身份证获取年龄、性别、出生日期等信息
#属性nl为年龄;sfzh为身份证号;xb 为性别;csrq 为出生日期 #根据身份证计算年龄并修改 update kw_test set nl= (substring(now(),1,4)-subs ...
- js通过身份证获取年龄
// 获取用户的身份证号码let identityCard = this.idNum.replace(/\s+/g, "");//判断长度let len = identityCar ...
- vue element-ui 通过身份证获取年龄,出生日期
页面代码: <el-dialog :title="title" :visible.sync="open" width="700px" ...
- js 根据身份证获取出生日期与年龄
js 根据身份证获取出生日期与年龄 //获取出生日期getBirthdayFromIdCard(idCard) {var birthday = "";if (idCard != n ...
- Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳...
Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳 早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下: (1)15位:1-6位为地区代码,7-8 ...
最新文章
- C#中使用DateTimePicker控件显示修改日期时间
- 流行的jQuery信息提示插件(jQuery Tooltip Plugin)
- 【温故知新】CSS学习笔记(三大特性)
- Java中集合(一)Collection 、ListE 、ArrayListE
- python获取类的类属性_Python中如何获取类属性的列表
- c51单片机蜂鸣器程序C语言响,单片机蜂鸣器响生日快乐编程程序
- 这11个JavaScript小技巧,你在大多数教程中是找不到的!
- linux线程同步 eventfd,用 eventfd 在线程之间通信
- 基于wincc的虚拟电梯设计_基于WinCC的电梯PLC控制仿真.doc
- 给mBlock添加扩展模块
- 原油期货开户条件和流程是什么?
- Calendar 设置周一为每周第一天
- 分享8个免费的超清背景图片下载网站
- centos 7.6 安装mariadb
- 蓝桥杯2020第二场JAVA C真题
- 程序员视角m1 Macbook air使用指南和指令备忘录
- Kafka3.0 提交offset方式
- 黑马程序员————IO流2(day19)
- 离线语音识别库_离线语音识别_离线语音识别sdk - 云+社区 - 腾讯云
- python做人工智能对话_如何用Python制作聊天机器人?