Calculate Age

how can i calculate age from birthday ( birthday is stored on my dataabse) and view on my cgridview view?


check this example

$datetime1 = new DateTime('the birthday date from database');

$datetime2 = new DateTime();

$diff = $datetime1->diff($datetime2);

$diff->y //years

$diff->m //months

$diff->d //days

but there is more correct way directly from database. If you want it please inform us :)

You can use This Post to calculate difference.

In cgrid view pass current date to a function which return calculated result.

// This code in gridview for column






//Function that calculate result

function getBdateCalculation($bdate)


        //Calculation here

	return $result;


Kiran gave us the left part of the solution!

just add in getBdateCalculation like that

function getBdateCalculation($bdate)


$datetime1 = new DateTime($bdate);

$datetime2 = new DateTime();

$diff = $datetime1->diff($datetime2);

return $diff->y;


thank you for help guys…

but the result is not correct this is my code:

on my model

function getBdayCalculation($bday)


$datetime1 = new DateTime($bday);

$datetime2 = new DateTime();

$diff = $datetime1->diff($datetime2);

return $diff->y;


on my Cgridview:




‘value’=> CHtml::encode($model->getBdayCalculation($model->bday)),


i got result of 0.

  1. put the method getBdayCalculation to the controller

  2. replace

'value'=> CHtml::encode($model->getBdayCalculation($model->bday)),


'value'=> CHtml::encode($this->getBdayCalculation($data->bday)),

Also check if the values are corrected using var_dump

Make sure your $bday is in ‘Y-m-d’, and KonApaz’s update is correct.

Undefined variable: data

this is my code on cgridview

this view is on my admin cgridview

‘value’=> CHtml::encode($this->getBdayCalculation($data->bday)),

try this

'value' => 'CHtml::encode($this->getBdayCalculation($data["bday"]))',


sorry its all my bad the code on my cgridview is wrong thank you all for the help specially to konapz…

my code on cgridview admin page: ‘value’=>’$data->getBdayCalculation($data->bday)’,