gpt4 book ai didi

php - 如何在php中显示系统正常运行时间?

转载 作者:IT王子 更新时间:2023-10-29 00:47:51 30 4
gpt4 key购买 nike

还是个新手,多多包涵...
所以我发现了这个系统正常运行时间的功能,并且在我学习 php 和 web 开发的过程中一直在玩弄它。
我的目标是让输出看起来像 days:hours:mins:secs 但没有 $seconds 变量所以我根据我的其他内容添加了该行。一切都很好,除了秒数显示为 0。我不太确定我做错了什么,或者这是否是最好的方法。

function Uptime() {

$uptime = @file_get_contents( "/proc/uptime");

$uptime = explode(" ",$uptime);
$uptime = $uptime[0];
$days = explode(".",(($uptime % 31556926) / 86400));
$hours = explode(".",((($uptime % 31556926) % 86400) / 3600));
$minutes = explode(".",(((($uptime % 31556926) % 86400) % 3600) / 60));
$seconds = explode(".",((((($uptime % 31556926) % 86400) % 3600) / 60) / 60));

$time = $days[0].":".$hours[0].":".$minutes[0].":".$seconds[0];

return $time;

}

编辑:我能够以不同的方式让它工作,新功能如下。我也很好奇是否有人可以回答为什么上述方法没有按预期工作,以及下面的新方法是否是实现此目的的最佳方法。

function Uptime() {
$ut = strtok( exec( "cat /proc/uptime" ), "." );
$days = sprintf( "%2d", ($ut/(3600*24)) );
$hours = sprintf( "%2d", ( ($ut % (3600*24)) / 3600) );
$min = sprintf( "%2d", ($ut % (3600*24) % 3600)/60 );
$sec = sprintf( "%2d", ($ut % (3600*24) % 3600)%60 );


return array( $days, $hours, $min, $sec );
}
$ut = Uptime();
echo "Uptime: $ut[0]:$ut[1]:$ut[2]:$ut[3]";

编辑 2:根据 nwellnhof 给出的答案,我认为最后一种方法是最好的。我不得不稍微调整一下才能得到我想要的输出。谢谢大家。

function Uptime() {
$str = @file_get_contents('/proc/uptime');
$num = floatval($str);
$secs = $num % 60;
$num = (int)($num / 60);
$mins = $num % 60;
$num = (int)($num / 60);
$hours = $num % 24;
$num = (int)($num / 24);
$days = $num;

return array(
"days" => $days,
"hours" => $hours,
"mins" => $mins,
"secs" => $secs
);
}

最佳答案

直接从 /proc/uptime 读取是 Linux 上最有效的解决方案。有多种方法可以将输出转换为天/小时/分钟/秒。尝试类似的东西:

$str   = @file_get_contents('/proc/uptime');
$num = floatval($str);
$secs = fmod($num, 60); $num = (int)($num / 60);
$mins = $num % 60; $num = (int)($num / 60);
$hours = $num % 24; $num = (int)($num / 24);
$days = $num;

或者,使用 intdiv (PHP7):

$str   = @file_get_contents('/proc/uptime');
$num = floatval($str);
$secs = fmod($num, 60); $num = intdiv($num, 60);
$mins = $num % 60; $num = intdiv($num, 60);
$hours = $num % 24; $num = intdiv($num, 24);
$days = $num;

关于php - 如何在php中显示系统正常运行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38907572/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com