我目前在服务器上运行一个python脚本,列出了我能找到的所有最大的序列。对于演示文稿,我想指定脚本运行多长时间。
目前,我正在使用函数shell_exec('ps -p 1696 -o etime=')
来获取自启动过程以来经过的时间。
24小时很好,在此之后,我使用dd-hh:mm:ss
我没有从php7.1的所有日期相关函数中找到任何解决方案来解析这个值,你知道我该怎么做才能得到时间"可读" 。 Regex会在这里做点什么吗?
我的意思是我希望php文件回复类似"脚本运行2天,16小时35分14秒"
这是我的php文件:
<?php
$time = shell_exec('ps -p 1696 -o etime=');
// Where 1696 is the PID of the python script
echo "Collatz.py running since :" . $time;
echo '<pre>'.file_get_contents('/var/www/html/logs.txt').'</pre>';
答案 0 :(得分:1)
您可以使用正则表达式来匹配ps
生成的时间字符串,将它们分组到匹配的组中,然后使用它们来构建字符串。
$time = shell_exec('ps -p 3646 -o etime=');
preg_match("/^(((\\d*)-)?(\\d*):)?(\\d{2}):(\\d{2})$/", $time, $matches);
$days = $matches[3];
$hours = $matches[4];
$minutes = $matches[5];
$seconds = $matches[6];
$time_string = "";
$time_string .= strlen($days) > 0 ? $days . " days, " : "";
$time_string .= strlen($hours) > 0 ? $hours . " hours " : "";
$time_string .= strlen($minutes) > 0 ? $minutes . " minutes and " : "";
$time_string .= $seconds . " seconds";
echo "Running since: " . $time_string;