TalkPHP

TalkPHP (http://www.talkphp.com/forums.php)
-   Tips & Tricks (http://www.talkphp.com/tips-tricks/)
-   -   Two Different Ways to Format the Time (http://www.talkphp.com/tips-tricks/1220-two-different-ways-format-time.html)

CMellor 09-24-2007 11:12 PM

Two Different Ways to Format the Time
 
Hello,

I will be giving two methods of converting your unix timestamp into readable format. The most common way to display a unix timestamp in a readable format is to the the date() function, like so:

Code:

date("M D, Y", time());
I'm going to give you two different ways,
  1. First Method: Display if time was posted Today or Yesterday
  2. Second Method: Display if the time was posted X Minutes Ago, X Hours Ago, X Years Ago and more...
Okay, First Method:

Code:

function date_pretty($unix_time, $date_format = 'jS M y, H:m a') {
        $time = $unix_time;
       
        if(date($date_format, $time) == date($date_format)) {
                $msg = "Today @ ".date("H:i a", $time)."";
        }
        elseif(date($date_format, $time) == date($date_format, strtotime("yesterday"))) {
                $msg = "Yesterday @ ".date("H:i a", $time)."";
        }
        else {
                $msg = date($date_format, $time);
        }
       
        return($msg);
}

Usage:
Code:

echo date_pretty($row->time);
Usage w/ custom date
Code:

echo date_pretty(time(), "D, M Y");
Now, the second method!

Code:

function timeago($time) {
        // Set the time, minus your set time
        $diff = time() - $time;
        // Years
    if($diff > 31556926) {
        $years = floor($diff / 31556926);
        $times = ($years == 1) ? $years." Year" : $years." Years";
    }
        // Motnsh
    elseif($diff > 18144000) {
        $months = floor($diff / 18144000);
        $times = ($months == 1) ? $months." Month" : $months." Months";
    }
        // Weeks
    elseif($diff > 604800) {
        $weeks = floor($diff / 604800);
        $times = ($weeks == 1) ? $weeks." Week" : $weeks." Weeks";
    }
        // Days
    elseif($diff > 86400) {
        $days = floor($diff / 86400);
        $times = ($days == 1) ? $days." Day" : $days." Days";
    }
        // Hours
    elseif($diff > 3600) {
        $hours = floor($diff / 3600);
        $times = ($hours == 1) ? $hours." Hour" : $hours." Hours";
    }
        // Minutes
    else {
        $min = ceil($diff / 60);
        $times = ($min == 1) ? $min." Minute" : $min." Minutes";
    }
        // Return output
    return $times;
}

Usage:

Code:

echo timeago($row->time);
I hope somebody can find some use for these code snippets. This is the first time really I've contributed any code, but only because I've had nowhere to do so, and this place seems like the sort of place that it could get some use from the users.

Enjoy!


All times are GMT. The time now is 11:07 AM.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0