Skip to content

Instantly share code, notes, and snippets.

@moimikey
Created February 18, 2012 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moimikey/1860519 to your computer and use it in GitHub Desktop.
Save moimikey/1860519 to your computer and use it in GitHub Desktop.
my own relative time converter
<?php
class Time {
/**
* Seconds
*/
const SECOND = 1;
/**
* Minutes
*/
const MINUTE = 60;
/**
* Hours
*/
const HOUR = 3600;
/**
* Days
*/
const DAY = 86400;
/**
* Weeks
*/
const WEEK = 604800;
/**
* Months
*/
const MONTH = 2592000;
/**
* Tears
*/
const YEAR = 31536000;
/**
* Decades
*/
const DECADE = 315360000;
/**
* Centuries
*/
const CENTURY = 3153600000;
/**
* Convert UNIX timestamp to human readable format
*
* @param number $timestamp UNIX timestamp
* @return string Return human readable format of $timestamp
* @access public
* @author moimikey
* @static
*/
public static function relative_time( $timestamp ) {
$diff = time() - $timestamp;
if( $diff >= self::CENTURY ) {
$delta = intval( $diff / self::CENTURY );
return ( $delta > 1 ) ? "{$delta} centuries ago" : "{$delta} century ago";
} elseif( $diff >= self::DECADE ) {
$delta = intval( $diff / self::DECADE );
return ( $delta > 1 ) ? "{$delta} decades ago" : "{$delta} decade ago";
} elseif( $diff >= self::YEAR ) {
$delta = intval( $diff / self::YEAR );
return ( $delta > 1 ) ? "{$delta} years ago" : "{$delta} year ago";
} elseif( $diff >= self::MONTH ) {
$delta = intval( $diff / self::MONTH );
return ( $delta > 1 ) ? "{$delta} months ago" : "{$delta} month ago";
} elseif( $diff >= self::WEEK ) {
$delta = intval( $diff / self::WEEK );
return ( $delta > 1 ) ? "{$delta} weeks ago" : "{$delta} week ago";
} elseif( $diff >= self::DAY ) {
$delta = intval( $diff / self::DAY );
return ( $delta > 1 ) ? "{$delta} days ago" : "{$delta} day ago";
} elseif( $diff >= self::HOUR ) {
$delta = intval( $diff / self::HOUR );
return ( $delta > 1 ) ? "{$delta} hours ago" : "{$delta} hour ago";
} elseif( $diff >= self::MINUTE ) {
$delta = intval( $diff / self::MINUTE );
return ( $delta > 1 ) ? "{$delta} minutes ago" : "{$delta} minute ago";
} else {
return 'moments ago';
}
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment