|
posix_times
Get process times
(PHP 4, PHP 5)
Example 1888. Example use of posix_times()<?php The above example will output something similar to: Array Code Examples / Notes » posix_timesrossz+php
This function will return the system uptime as a human readable string such as "172 days, 18 hours, 15 minutes". I didn't bother to handle singular so the grammar could be a bit off, e.g. 1 hours. function uptime() { if (!$times = posix_times()) { return ("unknown"); } else { $now = $times['ticks']; $days = intval($now / (60*60*24*100)); $remainder = $now % (60*60*24*100); $hours = intval($remainder / (60*60*100)); $remainder = $remainder % (60*60*100); $minutes = intval($remainder / (60*100)); return ("$days days, $hours hours, $minutes minutes"); } } not_rich_yet
If you want the output to be 'grammatically correct' then try the following code. It will eg print '1 minute' as opposed to '1 minutes', the same goes for days and hours: Put the following code somewhere in the head of the page code: <?php function uptime() { if (!$times = posix_times() ) { return ("unknown"); } else { $now = $times['ticks']; $days = intval($now / (60*60*24*100)); $remainder = $now % (60*60*24*100); $hours = intval($remainder / (60*60*100)); $remainder = $remainder % (60*60*100); $minutes = intval($remainder / (60*100)); if ($days == 1) {$writeDays = "day";} else {$writeDays = "days";} if ($hours == 1) {$writeHours = "hour"; } else {$writeHours = "hours";} if ($minutes == 1) {$writeMins = "minute";} else {$writeMins = "minutes";} return ("$days $writeDays, $hours $writeHours, $minutes $writeMins"); } } ?> Then put this bit where you want the info displayed: <?php print uptime(); ?> Regards, nry murphy
I am not sure why, and it could just be me but on my FreeBSD system using $time = posix_times(); $time['ticks'] is an enormous value that bears no relation to the system uptime (I tested by rebooting the system, the number does not change). I checked my timecounters, they tick every 10.000msec and I did the maths on the returned value and it suggested the machine had been up for over 200 days - it was reformatted about a week ago. This could be to do with FreeBSD, or *BSD, or just *idiots like me but just check before you use the function. ~ FreeBSD 5.1-R, Apache 2.0.46, PHP4.3.2 brain
doesnt work with freebsd. as stated above the clock ticks at different intervals on different platforms. for system uptime consider piping the uptime command or similar, depending on if performance is an issue or not. |
Change Languageposix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid posix_setuid posix_strerror posix_times posix_ttyname posix_uname |