龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

根据出生日期计算年龄(考虑到闰年的情况)

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
主要考虑到闰年的情况,如果有人出生在2.29,那么不是闰年则过了2.28将算上一岁
主要考虑到闰年的情况,如果有人出生在2.29,那么不是闰年则过了2.28将算上一岁
function age($birth) {
	$age = array();
	//$now = date('Ymd');
	$now = "20110228";
	//分解当前日期为年月日
	$nowyear = (int) ($now / 10000);
	$nowmonth = (int) (($now % 10000) / 100);
	$nowday = $now % 100;
	
	
	//分解出生日期为年月日
	$birthyear = (int) ($birth / 10000);
	$birthmonth = (int) (($birth % 10000) / 100);
	$birthday = $birth % 100;
	
	$year  = $nowyear - $birthyear;
	if ($birthmonth>$nowmonth){
		$year--;
	}else if($birthmonth==$nowmonth){
		if($birthday==29&&$birthmonth=2){
/* 			if($nowyear>3200||($nowyear%3200==0&&$nowyear%172800==0)){
				if($birthday>$nowday){
					$year--;
				}
			}else if($nowyear==3200){
				if (($birthday>$nowday)&&$nowday!=28){
					$year--;
				}
			}else */
			if ($nowyear%400==0||(($nowyear%4==0)&&($nowyear%100!=0))){
				if($birthday>$nowday){
					$year--;
				}
			}
		}
	}
	
	return $year;
	
	
	
	
}
精彩图集

赞助商链接