Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.17 KB | None | 0 0
  1. <?php
  2.  
  3. echo 'event happened ' . humanTiming(time()-500);
  4.  
  5. function humanTiming($time) {  //humanTiming accepts unix timestamp $time, outputs time elapsed since $time in human readable format
  6.     $YEAR = 31536000; //number of seconds in a year
  7.     $MONTH = 2592000; //etc
  8.     $WEEK = 604800;
  9.     $DAY = 86400;
  10.     $HOUR = 3600;
  11.     $MIN = 60;
  12.     $SEC = 1;
  13.  
  14.     $difference = time() - $time; //difference is current time minus the input time
  15.    
  16.     if ($difference < 1)
  17.         $difference = 1;  //round up to 1 second if difference is less
  18.    
  19.     if ($difference > $YEAR) { //if it's been over a year
  20.         $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()
  21.         if ($numYears > 1)
  22.             return $numYears . 'years ago';
  23.         else //$numyears == 1
  24.             return '1 year ago';
  25.     }
  26.     else if ($difference > $MONTH) { //if it's been over a month
  27.         $numMonths = floor($difference/$MONTH); //figure out number of months
  28.         if ($numMonths > 1)
  29.             return $numMonths . 'months ago';
  30.         else //$numMonths == 1
  31.             return '1 month ago';
  32.     }
  33.     else if ($difference > $WEEK) {
  34.         $numWeeks = floor($difference/$WEEK);
  35.         if ($numWeeks > 1)
  36.             return $numWeeks . 'weeks ago';
  37.         else //$numWeeks == 1
  38.             return '1 week ago';
  39.     }
  40.     else if ($difference > $DAY) {
  41.         $numDays = floor($difference/$DAY);
  42.         if ($numDays > 1)
  43.             return $numDays . 'days ago';
  44.         else //$numDays == 1
  45.             return '1 day ago';
  46.     }
  47.     else if ($difference > $HOUR) {
  48.         $numHours = floor($difference/$HOUR);
  49.         if ($numHours > 1)
  50.             return $numHours . 'hours ago';
  51.         else //$numHours == 1
  52.             return '1 hour ago';
  53.     }  
  54.     else if ($difference > $MIN) {
  55.         $numMins = floor($difference/$MIN);
  56.         if ($numMins > 1)
  57.             return $numMins . 'minutes ago';
  58.         else //$numMins == 1
  59.             return '1 minute ago';
  60.     }
  61.     else { //it's been less than a minute
  62.         $numSecs = floor($difference); //difference is already in seconds, just make sure it is whole number
  63.         if ($numSecs > 1)
  64.             return $numSecs . 'seconds ago';
  65.         else //$numSecs == 1
  66.             return '1 second ago'; //damn nice
  67.     }  
  68.    
  69.     return 0; //we should never get here, somethings broke
  70. } //humanTiming()
  71.  
  72.  
  73. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement