php实现根据身份证获取精准年龄


Posted in PHP onFebruary 26, 2020

前言

有时候,我们希望通过身份证来计算出年龄,那么下面我写的函数很适合。

实现

代码中已有详细注释。

function getAge($id){

# 1.从身份证中获取出生日期
$id = $id;//身份证
$birth_Date = strtotime(substr($id, 6, 8));//截取日期并转为时间戳

# 2.格式化[出生日期]
$Year = date('Y', $birth_Date);//yyyy
$Month = date('m', $birth_Date);//mm
$Day = date('d', $birth_Date);//dd

# 3.格式化[当前日期]
$current_Y = date('Y');//yyyy
$current_M = date('m');//mm
$current_D = date('d');//dd

# 4.计算年龄()
$age = $current_Y - $Year;//今年减去生日年
if($Month > $current_M || $Month == $current_M && $Day > $current_D){//深层判断(日)
 $age--;//如果出生月大于当前月或出生月等于当前月但出生日大于当前日则减一岁
}
# 返回
return $age;

}

使用

通过调用 getAge() 方法,传入身份证号即可计算。

# 参数必须为 String 型
echo getAge('130322xxxxxxxxxx14');
// xx

小编再为大家分享一段代码:身份证获取年龄信息:

/*
* 根据身份证号码获取年龄
* inupt $code = 完整的身份证号
* return $age : 年龄
*/
function ageVerification($code){
 $age_time = strtotime(substr($code, 6, 8));
 if($age_time === false){
 return false;
 }
 list($y1,$m1,$d1) = explode("-",date("Y-m-d",$age_time)); 
 
 $now_time = strtotime("now");
 
 list($y2,$m2,$d2) = explode("-",date("Y-m-d",$now_time));
 $age = $y2 - $y1;
 if((int)($m2.$d2) < (int)($m1.$d1)){
 $age -= 1;
 }
 return $age; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php skymvc 一款轻量、简单的php
Jun 28 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
php上传文件问题汇总
Jan 30 PHP
php实现字符串首字母大写和单词首字母大写的方法
Mar 14 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 #PHP
PHP实现创建一个RPC服务操作示例
Feb 23 #PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 #PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 #PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 #PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 #PHP
php7 图形用户界面GUI 开发示例
Feb 22 #PHP
You might like
PHP排序算法类实例
2015/06/17 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
Vue computed计算属性的使用方法
2017/07/14 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
使用cx_freeze把python打包exe示例
2014/01/24 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
Python gevent协程切换实现详解
2020/09/14 Python
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
党日活动总结
2014/05/07 职场文书
白血病捐款倡议书
2014/05/14 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
门店业绩提升方案
2014/06/08 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
教你用python实现12306余票查询
2021/06/30 Python
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL