根据出生日期计算年龄(考虑到闰年的情况)
...
主要考虑到闰年的情况,如果有人出生在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;
-
-
-
-
- }
复制代码
|