近日作项目时临时须要计算年龄,之前都是用户手输,此次是经过身份证号来计算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; }