使用php实现从身份证中提取生日


Posted in PHP onMay 09, 2016

用php从身份证中提取生日,包括15位和18位身份证

function getIDCardInfo($IDCard,$format=1){ 
 $result['error']=0;//0:未知错误,1:身份证格式错误,2:无错误 
 $result['flag']='';//0标示成年,1标示未成年 
 $result['tdate']='';//生日,格式如:2012-11-15 
 if(!preg_match("/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/",$IDCard)){ 
  $result['error']=1; 
  return $result; 
 }else{ 
  if(strlen($IDCard)==18)
  { 
   $tyear=intval(substr($IDCard,6,4)); 
   $tmonth=intval(substr($IDCard,10,2)); 
   $tday=intval(substr($IDCard,12,2)); 
  }
  elseif(strlen($IDCard)==15)
  { 
   $tyear=intval("19".substr($IDCard,6,2)); 
   $tmonth=intval(substr($IDCard,8,2)); 
   $tday=intval(substr($IDCard,10,2)); 
  }
   
  if($tyear>date("Y")||$tyear<(date("Y")-100))
  { 
    $flag=0; 
   }
   elseif($tmonth<0||$tmonth>12)
   { 
    $flag=0; 
   }
   elseif($tday<0||$tday>31)
   { 
    $flag=0; 
   }else
   { 
    if($format)
    {
     $tdate=$tyear."-".$tmonth."-".$tday; 
    }
    else
    {
     $tdate=$tmonth."-".$tday; 
    }
     
    if((time()-mktime(0,0,0,$tmonth,$tday,$tyear))>18*365*24*60*60)
    { 
     $flag=0; 
    }
    else
    { 
     $flag=1; 
    } 
   }  
 } 
 $result['error']=2;//0:未知错误,1:身份证格式错误,2:无错误 
 $result['isAdult']=$flag;//0标示成年,1标示未成年 
 $result['birthday']=$tdate;//生日日期 
 return $result; 
}
PHP 相关文章推荐
PHP小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
sphinx增量索引的一个问题
Jun 14 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
php验证码生成代码
Nov 11 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
php 生成签名及验证签名详解
Oct 26 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
Jul 09 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 PHP
PHP isset empty函数相关面试题及解析
Dec 11 PHP
PHP使用内置函数生成图片的方法详解
May 09 #PHP
php时间计算相关问题小结
May 09 #PHP
php数据访问之查询关键字
May 09 #PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 #PHP
php数据访问之增删改查操作
May 09 #PHP
php简单实现批量上传图片的方法
May 09 #PHP
php简单备份与还原MySql的方法
May 09 #PHP
You might like
php 中英文语言转换类代码
2011/08/11 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
jquery查找tr td 示例模拟
2014/05/08 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
python实现神经网络感知器算法
2017/12/20 Python
python3爬虫之设计签名小程序
2018/06/19 Python
python中实现字符串翻转的方法
2018/07/11 Python
python之消除前缀重命名的方法
2018/10/21 Python
Python多进程写入同一文件的方法
2019/01/14 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
办公室文员工作职责
2014/01/31 职场文书
推荐信格式范文
2014/05/09 职场文书
专题组织生活会方案
2014/06/15 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
公司奖励通知
2015/04/21 职场文书
交通事故代理词范文
2015/05/23 职场文书
婚宴来宾致辞
2015/07/28 职场文书
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL