使用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 xfocus防注入资料
Apr 27 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
php批量上传的实现代码
Jun 09 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
php提取微信账单的有效信息
Oct 01 PHP
PHP crypt()函数的用法讲解
Feb 15 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 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
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
javascript 保存文件到本地实现方法
2012/11/29 Javascript
nodejs教程之入门
2014/11/21 NodeJs
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
python实现统计代码行数的方法
2015/05/22 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
汇科协同Java笔试题
2012/03/31 面试题
办公室年终个人自我评价
2013/10/28 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL