note 53452 deleted from function.time by aidan
| From: | aidan@php.net | Date: | Sat, 08 Oct 2005 01:02:17 +0000 |
| Subject: | note 53452 deleted from function.time by aidan | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-96599@lists.php.net to get a copy of this message | ||
Note Submitter: shazow at gmail dot com
----
Here is a simply function which takes in a given date (in Unix Timestamp format) and a given amount
to round (default 0), and converts it to a readable string of the highest plural denomination.
For example, 325 seconds elapsed will become "5 minutes". Or, 3628800 seconds elapsed will
become "6 weeks".
<?
function getElapsedString($originalDate, $roundTo=0) {
$elapsedTime = time() - $originalDate;
if($elapsedTime==1) {
// One second
$elapsedString = $elapsedTime . " second";
} else if($elapsedTime<(60*2)) {
// Seconds
$elapsedString = $elapsedTime . " seconds";
} else if($elapsedTime<(60*60*2)) {
// Minutes
$elapsedString = round($elapsedTime/60, $roundTo) . " minutes";
} else if($elapsedTime<(60*60*24*2)) {
// Hours
$elapsedString = round($elapsedTime/60/60, $roundTo) . " hours";
} else if($elapsedTime<(60*60*24*7*2)) {
// Days
$elapsedString = round($elapsedTime/60/60/24, $roundTo) . " days";
} else if($elapsedTime<(60*60*24*30*2)) {
// Weeks
$elapsedString = round($elapsedTime/60/60/24/7, $roundTo) . " weeks";
} else if($elapsedTime<(60*60*24*365*2)) {
// Months
$elapsedString = round($elapsedTime/60/60/24/12, $roundTo) . " months";
} else {
// Years
$elapsedString = round($elapsedTime/60/60/24/365, $roundTo) . " years";
}
return $elapsedString;
}
?>
Example useage:
<?
echo getElapsedString(time()-3650); // Gives "61 minutes"
echo getElapsedString(time()-424242, 2); // Gives "4.91 days"
?>