PHP Time Ago

PHP Time Ago functionality is used to display time in the different format.

  • Display the time format which is easy to understand.
  • Display the time format similar to different time zone.
  • Commonly used in messaging and feeds.

Time Ago Implementation

It takes the timestamp as an input and subtracts it with the current timestamp. Then it compares the remaining date with a predefined set of rules which determine the month, day, minute and even year. Then it calculates time difference by using a predefined set of rules which determine the second, minute, hour, day, month and year.

Time Ago Function


function get_time_ago( $time )
{
    $time_difference = time() - $time;

    if( $time_difference < 1 ) { return 'less than 1 second ago'; }
    $condition = array( 12 * 30 * 24 * 60 * 60 =>  'year',
                30 * 24 * 60 * 60       =>  'month',
                24 * 60 * 60            =>  'day',
                60 * 60                 =>  'hour',
                60                      =>  'minute',
                1                       =>  'second'
    );

    foreach( $condition as $secs => $str )
    {
        $d = $time_difference / $secs;

        if( $d >= 1 )
        {
            $t = round( $d );
            return 'about ' . $t . ' ' . $str . ( $t > 1 ? 's' : '' ) . ' ago';
        }
    }
}

Calling the Function

PHP Example:

echo get_time_ago( time()-5 ).'<br>';
echo get_time_ago( time()-60 ).'<br>';
echo get_time_ago( time()-3600 ).'<br>';
echo get_time_ago( time()-86400 ).'<br>';
echo get_time_ago( time()-2592000 ).'<br>';
echo get_time_ago( time()-31104000 ).'<br>';
echo "---".'<br>';
echo get_time_ago( strtotime("2013-12-01") );
Output:

about 5 seconds ago
about 1 minute ago
about 1 hour ago
about 1 day ago
about 1 month ago
about 1 year ago
---
about 2 years ago


Scroll Back to Top