php计算年龄的杂谈

近日作项目时临时须要计算年龄,之前都是用户手输,此次是经过身份证号来计算php

实话说之前还真没用日期计算过生日这种东西,挺小的需求,本身想了下好像两三行代码无法解决,也就网上搜了下直接用了code

过后本身也仔细地想了下该怎么算:io

首先年龄确定是个整数,不能出现一半一半的数function

年龄就是不能用天数算,由于一年的天数并不固定,考虑闰年算是扯远了,并且不能用日期差的时间戳直接算class

根据本身映像中直观地讲,年龄不光考虑年,还要考虑日期,日子没到是不能算一岁的date

而后我就想到其实能够设定一个基准日期,这个日期的年部分是当前年,日期就用生日,好比"2000-03-03"的基准日期就是"2019-03-03",能够用这个日期与当前日期进行比较,比如今大的画年龄就直接是当前年与生日年的差,比如今小的话差减1就是了im

这样的话稍微梳理下思路,代码天然就写出来了:时间戳

<?php
function GetAge($Date){
$CheckTimeStamp=strtotime($Date);
$NowDate=date('Y-m-d');
$NowYear=substr($NowDate,0,4);
$BaseYear=$NowYear-date('Y',$CheckTimeStamp);
return $NowDate>=$NowYear.date('-m-d',$CheckTimeStamp)?$BaseYear:$BaseYear-1;
}
相关文章
相关标签/搜索