function RelativeTime($timestamp) {
    $difference = time() - $timestamp;
    $periods    = array(
        "sec", "min", "hour", "day", "week", "month", "years", "decade"
    );
    $lengths    = array("60", "60", "24", "7", "4.35", "12", "10");
    if ($difference > 0) { // this was in the past
        $ending = "ago";
    } else { // this was in the future
        $difference = -$difference;
        $ending     = "to go";
    }
    for ($j = 0; $difference >= $lengths[$j]; $j++)
        $difference /= $lengths[$j];
    $difference = round($difference);
    if ($difference != 1) $periods[$j] .= "s";
    $text = "$difference $periods[$j] $ending";
    return $text;
}
I found the above PHP function on the interwebs. It seems to be working pretty well, except it has issues with dates far in the future.
For example, I get looping PHP error
division by zero
for $difference /= $lengths[$j]; when the date is in 2033.
Any ideas how to fix that? The array already accounts for decades, so I am hoping 2033 would result in something like "2 decades to go".
 
     
    