summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/Utils/Misc.php41
-rw-r--r--libs/system.php17
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