使用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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
PHP的开发框架的现状和展望
Mar 16 PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
php minixml详解
Jul 19 PHP
PHP动态创建Web站点的方法
Aug 14 PHP
php如何实现只替换一次或N次
Oct 29 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
简单谈谈 php 文件锁
Feb 19 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 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
学习使用curl采集curl使用方法
2012/01/11 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
造型师求职自荐信
2013/09/27 职场文书
教师业务学习制度
2014/01/25 职场文书
教学质量评估实施方案
2014/03/17 职场文书
网站美工岗位职责
2014/04/02 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
爱心募捐通知范文
2015/04/27 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
刘胡兰观后感
2015/06/16 职场文书
委托收款证明
2015/06/23 职场文书
委托书范本格式
2019/04/18 职场文书