使用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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
phpmyadmin操作流程
Oct 09 PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
php调用nginx的mod_zip模块打包ZIP文件
Jun 11 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
Smarty分页实现方法完整实例
May 11 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 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&amp;&amp;mysql)五
2006/10/09 PHP
杏林同学录(三)
2006/10/09 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
js常用代码段收集
2011/10/28 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python使用opencv读取图片的实例
2017/08/17 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
tensorflow的计算图总结
2020/01/12 Python
Python 存取npy格式数据实例
2020/07/01 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
网络安全类面试题
2015/08/01 面试题
大学生求职简历的自我评价范文
2013/10/12 职场文书
采购内勤岗位职责
2013/12/10 职场文书
中考冲刺决心书
2014/03/11 职场文书
岗位说明书范文
2014/05/07 职场文书
教师节班会主持词
2015/07/06 职场文书
全网非常详细的pytest配置文件
2022/07/15 Python