too long

I have a variable $dob which returns a date, in the following format: 1970-02-01 00:00:00

How can I use php to calculate the age of the person?

Try this:

<?php

$age = '1970-02-01 00:00:00';

echo (int)((time()-strtotime($age))/31536000);

Output: 43, in years.

i would try this

$user_dob = explode('-',$dob);
$current_year= date('Y');
$presons_age = $current_year - $user_dob[0];

This is an untested code but i feel u should get the logic.

Your question is explained in detail in the PHP documentation, it bascially goes like this:

// create a datetime object for a given birthday
$birthday = new DateTime("2012-12-12");
// substract your timestamp from it
$diff = $birthday->diff($dob);

// output the difference in years
echo $diff->format('%Y');
$dob = '1970-02-01 00:00:00';

$date = new DateTime($dob);
$diff = $date->diff(new DateTime);

echo $diff->format('%R%a days');

Basically stolen from here: http://uk1.php.net/manual/en/datetime.diff.php

Formatting options: http://uk1.php.net/manual/en/dateinterval.format.php

strtotime() will convert your date into a timestamp, then subject that from time() and the result is the age in seconds.

$age_in_seconds = time() - strtotime('1970-02-01');

To display the age in years (+- 1 day), then divide by the number of seconds in a year:

echo "Age in whole years is " . floor($age_in_seconds / 60 / 60 / 24 / 365.25);

One-liner:

echo date_create('1970-02-01')->diff(date_create('today'))->y;

Demo.