如何将php微时间显示为min:sec?

如何将php微时间显示为min:sec?,php,Php,我使用以下命令以秒为单位显示代码执行时间: $time_start = microtime(true); // code here $time_end = microtime(true); $time = ($time_end - $time_start); $time = number_format((float)$time, 3, '.', ''); echo "Process Time: {$time} sec"; 例如,我得到: 9.809 sec 我想将执行显示为: min:sec

我使用以下命令以秒为单位显示代码执行时间:

$time_start = microtime(true);
// code here
$time_end = microtime(true);
$time = ($time_end - $time_start);
$time = number_format((float)$time, 3, '.', '');
echo "Process Time: {$time} sec";
例如,我得到:

9.809 sec
我想将执行显示为:
min:sec
,如果最小值为1,则以sec为单位。 我对执行单元工作没有问题,但microtime给出的时间单位为毫秒,我如何获得之前的输出,如下所示:

00:09 sec or 03:50 min
解决方案: 要么:

或:


谢谢大家

您应该使用一些辅助功能:

<?php
$times = array(9.123, 230.455, 3601.123);

foreach($times as $time) {
  echo $time . " => " . formatMicrotime($time) . "\n";
}

function formatMicrotime($time) {
   return date('i:s', (int) $time);
}

如您所见,如果时间跨度大于1小时,您将遇到麻烦,但如果您正在测量脚本的执行时间,这可能不是问题;-)

不使用日期格式化程序的解决方案-自己完成:

$minutes = floor($time / 60);
$seconds = $time % 60;

$minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
$seconds = str_pad($seconds, 2, '0', STR_PAD_LEFT);

echo "Process Time: $minutes:$seconds";

注意:如果分钟数等于或大于60分钟,这也适用。即使你的分钟数超过99分钟。后者将需要两个以上的空格tho(例如,输出
120:00
2小时)。

因此9秒应打印为“00:09”,230秒应打印为“03:50”@maxhb与此完全相同。我现在正在测试它。无论如何,低租金的解决方案解决了这个问题。谢谢。这是另一个解决办法
<?php
$times = array(9.123, 230.455, 3601.123);

foreach($times as $time) {
  echo $time . " => " . formatMicrotime($time) . "\n";
}

function formatMicrotime($time) {
   return date('i:s', (int) $time);
}
9.123 => 00:09
230.455 => 03:50
3601.123 => 00:01
$minutes = floor($time / 60);
$seconds = $time % 60;

$minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
$seconds = str_pad($seconds, 2, '0', STR_PAD_LEFT);

echo "Process Time: $minutes:$seconds";