这篇文章主要为大家详细介绍了php实现根据身份证获取精准年龄,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
前言
有时候,我们希望通过身份证来计算出年龄,那么下面我写的函数很适合。
实现
代码中已有详细注释。
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实现根据身份证获取精准年龄
基础教程推荐
猜你喜欢
- laravel 解决多库下的DB::transaction()事务失效问题 2023-03-08
- 使用PHP开发留言板功能 2023-03-13
- PHP中的错误及其处理机制 2023-06-04
- 在Laravel中实现使用AJAX动态刷新部分页面 2023-03-02
- thinkphp3.2.3框架动态切换多数据库的方法分析 2023-03-19
- PHP获取MySQL执行sql语句的查询时间方法 2022-11-09
- PHP实现Redis单据锁以及防止并发重复写入 2022-10-12
- php array分组,PHP中array数组的分组排序 2022-08-01
- laravel ORM关联关系中的 with和whereHas用法 2023-03-02
- PHP命名空间简单用法示例 2022-12-01