Today, I had the fun task of changing the way that the “Freshness” dates display in BuddyPress forums. The idea behind “Freshness” is that there is an easy-to-read way to let people know when the forum topic was last updated. By default, it displays something like, “1 week, 5 days, 3 hours”, and I wanted to change that to say, “Sept. 18, 2012”.
The BuddyPress function that is used to make the “Freshness” call is bp_the_topic_time_since_last_post(). Unfortunately for me, this function is hard-wired to echo the value, which means that I cannot use PHP’s strtotime() function to manipulate the date format.
My solution was to find the core code for the bp_the_topic_time_since_last_post() function and rewrite it into my theme like so:
global $forum_template;
echo date ('M d, Y', strtotime($forum_template->topic->topic_time));
In the process of figuring this out, I also discovered the bp_the_topic_time_since_created() and human_time_diff() functions.
Pretty neat!
(Thanks to Mark for helping me troubleshoot this!)
Additional human_time_diff() links:
http://tollmanz.github.com/theres-a-function-for-that/#1
http://wordpress.tv/2012/09/02/zack-tollman-theres-a-function-for-that-more-for-less-with-core-functions/