Created
October 2, 2011 13:55
-
-
Save sbrajesh/1257476 to your computer and use it in GitHub Desktop.
Get Age from BuddyPress datebox field data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Get Age from BuddyPress date of Birth | |
* @param string $dob_field_name :name of the DOB field in xprofile, like Dob or Date of Birth | |
* @param int $user_id : the user for which you want to retrieve the age | |
* @param string $format: the way you want to print the difference, look t <http://php.net/manual/en/dateinterval.format.php> for the acceptable agrs | |
* @return string :the formatted age in year/month | |
*/ | |
function bpdev_get_age_from_dob($dob_field_name,$user_id=false,$format="%y Years, %m Month(s), %d days"){ | |
if(!$user_id) | |
$user_id=bp_displayed_user_id (); | |
$dob_time=xprofile_get_field_data($dob_field_name, $user_id);//get the datetime as myswl datetime | |
$dob=new DateTime($dob_time);//create a DateTime Object from that | |
$current_date_time=new DateTime();//current date time object | |
//calculate difference | |
$diff= $current_date_time->diff($dob);//returns DateInterval object | |
//format and return | |
return $diff->format($format); | |
} | |
/*usage | |
echo "Your Age".bpdev_get_age_from_dob("Dob",bp_loggedin_user_id()); | |
//and so on | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I got an error when put in echo:
Fatal error: Call to undefined method DateTime::diff() in /home/dom/public_html/wp-content/plugins/buddypress/bp-themes/bp-default/functions.php on line 377
Line 377 is this – $diff= $current_date_time->diff($dob);//returns DateInterval object
Any idea how to correct that?
Thanks.