/**
  * Returns a nice human readable copy of the server uptime.
  * @author Bobby Allen (ballen@bobbyallen.me)
  * @return string Human readable server uptime.
  */
 static function ServerUptime()
 {
     if (sys_versions::ShowOSPlatformVersion() == "Linux") {
         $uptime = trim(exec("cat /proc/uptime"));
         $uptime = explode(" ", $uptime);
         $uptime = $uptime[0];
         $day = 86400;
         $days = floor($uptime / $day);
         $utdelta = $uptime - $days * $day;
         $hour = 3600;
         $hours = floor($utdelta / $hour);
         $utdelta -= $hours * $hour;
         $minute = 60;
         $minutes = floor($utdelta / $minute);
         $days = fs_director::CheckForNullValue($days != 1, $days . ' days', $days . ' day');
         $hours = fs_director::CheckForNullValue($hours != 1, $hours . ' hours', $hours . ' hour');
         $minutes = fs_director::CheckForNullValue($minutes != 1, $minutes . ' minutes', $minutes . ' minute');
         $retval = $days . ", " . $hours . ", " . $minutes . "";
     } elseif (sys_versions::ShowOSPlatformVersion() == "Windows") {
         $pagefile = "C:\\pagefile.sys";
         $upsince = filemtime($pagefile);
         $gettime = time() - filemtime($pagefile);
         $days = floor($gettime / (24 * 3600));
         $gettime = $gettime - $days * (24 * 3600);
         $hours = floor($gettime / 3600);
         $gettime = $gettime - $hours * 3600;
         $minutes = floor($gettime / 60);
         $gettime = $gettime - $minutes * 60;
         $seconds = $gettime;
         $days = fs_director::CheckForNullValue($days != 1, $days . ' days', $days . ' day');
         $hours = fs_director::CheckForNullValue($hours != 1, $hours . ' hours', $hours . ' hour');
         $minutes = fs_director::CheckForNullValue($minutes != 1, $minutes . ' minutes', $minutes . ' minute');
         $retval = $days . ", " . $hours . ", " . $minutes . "";
     } elseif (sys_versions::ShowOSPlatformVersion() == "MacOSX") {
         $uptime = explode(" ", exec("sysctl -n kern.boottime"));
         $uptime = str_replace(",", "", $uptime[3]);
         $uptime = time() - $uptime;
         $min = $uptime / 60;
         $hours = $min / 60;
         $days = floor($hours / 24);
         $hours = floor($hours - $days * 24);
         $minutes = floor($min - $days * 60 * 24 - $hours * 60);
         $days = fs_director::CheckForNullValue($days != 1, $days . ' days', $days . ' day');
         $hours = fs_director::CheckForNullValue($hours != 1, $hours . ' hours', $hours . ' hour');
         $minutes = fs_director::CheckForNullValue($minutes != 1, $minutes . ' minutes', $minutes . ' minute');
         $retval = $days . ", " . $hours . ", " . $minutes . "";
     } elseif (sys_versions::ShowOSPlatformVersion() == "FreeBSD") {
         $uptime = explode(" ", exec("/sbin/sysctl -n kern.boottime"));
         $uptime = str_replace(",", "", $uptime[3]);
         $uptime = time() - $uptime;
         $min = $uptime / 60;
         $hours = $min / 60;
         $days = floor($hours / 24);
         $hours = floor($hours - $days * 24);
         $minutes = floor($min - $days * 60 * 24 - $hours * 60);
         $days = fs_director::CheckForNullValue($days != 1, $days . ' days', $days . ' day');
         $hours = fs_director::CheckForNullValue($hours != 1, $hours . ' hours', $hours . ' hour');
         $minutes = fs_director::CheckForNullValue($minutes != 1, $minutes . ' minutes', $minutes . ' minute');
         $retval = $days . ", " . $hours . ", " . $minutes . "";
     } else {
         $retval = "Unsupported OS";
     }
     return $retval;
 }