diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/Utils/Misc.php | 41 | ||||
-rw-r--r-- | libs/system.php | 17 |
2 files changed, 42 insertions, 16 deletions
diff --git a/libs/Utils/Misc.php b/libs/Utils/Misc.php index a86312b..37e578b 100644 --- a/libs/Utils/Misc.php +++ b/libs/Utils/Misc.php @@ -70,6 +70,47 @@ class Misc /** + * Seconds to human readable text + * Eg: for 36545627 seconds => 1 year, 57 days, 23 hours and 33 minutes + * + * @return string Text + */ + public static function getHumanTime($seconds) + { + $units = array( + 'year' => 365*86400, + 'day' => 86400, + 'hour' => 3600, + 'minute' => 60, + // 'second' => 1, + ); + + $parts = array(); + + foreach ($units as $name => $divisor) + { + $div = floor($seconds / $divisor); + + if ($div == 0) + continue; + else + if ($div == 1) + $parts[] = $div.' '.$name; + else + $parts[] = $div.' '.$name.'s'; + $seconds %= $divisor; + } + + $last = array_pop($parts); + + if (empty($parts)) + return $last; + else + return join(', ', $parts).' and '.$last; + } + + + /** * Returns a command that exists in the system among $cmds * * @param array $cmds List of commands diff --git a/libs/system.php b/libs/system.php index 015b1dd..39e4096 100644 --- a/libs/system.php +++ b/libs/system.php @@ -31,22 +31,7 @@ if (!($totalSeconds = shell_exec('/usr/bin/cut -d. -f1 /proc/uptime'))) } else { - $totalMin = $totalSeconds / 60; - $totalHours = $totalMin / 60; - - $days = floor($totalHours / 24); - $hours = floor($totalHours - ($days * 24)); - $min = floor($totalMin - ($days * 60 * 24) - ($hours * 60)); - - $uptime = ''; - if ($days != 0) - $uptime .= $days.' day'.Misc::pluralize($days).' '; - - if ($hours != 0) - $uptime .= $hours.' hour'.Misc::pluralize($hours).' '; - - if ($min != 0) - $uptime .= $min.' minute'.Misc::pluralize($min); + $uptime = Misc::getHumanTime($totalSeconds); } // Last boot |