mikeerickson
5/9/2013 - 7:52 PM

PHP:howLongAgo

PHP:howLongAgo

	/**
	 * Returns twitter style time ago from supplied timestamp
	 * @param  timestamp $timestamp [description]
	 * @return string           	[description]
	 */
	public static function howLongAgo($timestamp) {
        $difference = time() - $timestamp;

        if($difference >= 60*60*24*365){        // if more than a year ago
            $int = intval($difference / (60*60*24*365));
            $s = ($int > 1) ? 's' : '';
            $r = $int . ' year' . $s . ' ago';
        } elseif($difference >= 60*60*24*7*5){  // if more than five weeks ago
            $int = intval($difference / (60*60*24*30));
            $s = ($int > 1) ? 's' : '';
            $r = $int . ' month' . $s . ' ago';
        } elseif($difference >= 60*60*24*7){        // if more than a week ago
            $int = intval($difference / (60*60*24*7));
            $s = ($int > 1) ? 's' : '';
            $r = $int . ' week' . $s . ' ago';
        } elseif($difference >= 60*60*24){      // if more than a day ago
            $int = intval($difference / (60*60*24));
            $s = ($int > 1) ? 's' : '';
            $r = $int . ' day' . $s . ' ago';
        } elseif($difference >= 60*60){         // if more than an hour ago
            $int = intval($difference / (60*60));
            $s = ($int > 1) ? 's' : '';
            $r = $int . ' hour' . $s . ' ago';
        } elseif($difference >= 60){            // if more than a minute ago
            $int = intval($difference / (60));
            $s = ($int > 1) ? 's' : '';
            $r = $int . ' minute' . $s . ' ago';
        } else {                                // if less than a minute ago
            $r = 'moments ago';
        }

        return $r;
	}