Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- echo 'event happened ' . humanTiming(time()-500);
- function humanTiming($time) { //humanTiming accepts unix timestamp $time, outputs time elapsed since $time in human readable format
- $YEAR = 31536000; //number of seconds in a year
- $MONTH = 2592000; //etc
- $WEEK = 604800;
- $DAY = 86400;
- $HOUR = 3600;
- $MIN = 60;
- $SEC = 1;
- $difference = time() - $time; //difference is current time minus the input time
- if ($difference < 1)
- $difference = 1; //round up to 1 second if difference is less
- if ($difference > $YEAR) { //if it's been over a year
- $numYears = floor($difference/$YEAR); //number of years = the time difference in seconds divided by how many seconds are in a year, rounded down to a whole number by floor()
- if ($numYears > 1)
- return $numYears . 'years ago';
- else //$numyears == 1
- return '1 year ago';
- }
- else if ($difference > $MONTH) { //if it's been over a month
- $numMonths = floor($difference/$MONTH); //figure out number of months
- if ($numMonths > 1)
- return $numMonths . 'months ago';
- else //$numMonths == 1
- return '1 month ago';
- }
- else if ($difference > $WEEK) {
- $numWeeks = floor($difference/$WEEK);
- if ($numWeeks > 1)
- return $numWeeks . 'weeks ago';
- else //$numWeeks == 1
- return '1 week ago';
- }
- else if ($difference > $DAY) {
- $numDays = floor($difference/$DAY);
- if ($numDays > 1)
- return $numDays . 'days ago';
- else //$numDays == 1
- return '1 day ago';
- }
- else if ($difference > $HOUR) {
- $numHours = floor($difference/$HOUR);
- if ($numHours > 1)
- return $numHours . 'hours ago';
- else //$numHours == 1
- return '1 hour ago';
- }
- else if ($difference > $MIN) {
- $numMins = floor($difference/$MIN);
- if ($numMins > 1)
- return $numMins . 'minutes ago';
- else //$numMins == 1
- return '1 minute ago';
- }
- else { //it's been less than a minute
- $numSecs = floor($difference); //difference is already in seconds, just make sure it is whole number
- if ($numSecs > 1)
- return $numSecs . 'seconds ago';
- else //$numSecs == 1
- return '1 second ago'; //damn nice
- }
- return 0; //we should never get here, somethings broke
- } //humanTiming()
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement