2013-07-11 247 views
2

我想创建我的成员的平均年龄。 我已经设法得到所有出生日期的数组,并找到了一个计算生日的简单方法。但我无法将它结合起来。计算成员的平均年龄(PHP)

我的 '出生日期' - 阵列:

$results = array(); 

$dob_array = mysqli_query($conn, "SELECT dob_array FROM members"); 

    while($row = mysqli_fetch_assoc($dob_array)){ 
     $results[] = $row; 
    } 

年龄的计算:我的年龄阵列的

$today = new DateTime(); 
$birthdate = new DateTime("1991-01-01"); 
$interval = $today->diff($birthdate); 
echo $interval->format('%y years'); 

计算平均:

$average = array_sum($array)/count($array); 
+3

而next.Are你得到任何错误,会发生什么? –

回答

5

可能用直接sql完成(使用TIMESTAMPDIFF()AVG()函数):

SELECT AVG(TIMESTAMPDIFF(YEAR, `dob`, NOW())) as `average` FROM `member`; 
+1

为了得到更准确的结果使用和'DAY'的'interval'并除以365.'AVG(TIMESTAMPDIFF(DAY,'date_of_birth',NOW())/ 365)''。 –

+0

@BrettSantore注意。 – BlitZ

0

这可能一:

SELECT AVG(DOB_COLUMN_NAME) from TABLE NAME 
+0

这将给平均出生日期,而不是年龄。 – Bun