微量滴定至秒或小时或分钟转换

时间:2011-06-24 12:59:26

标签: php

我将商店开始时间作为microtime(),结束时间作为microtime()进入数据库。

现在我想计算脚本执行秒/分钟/小时的时间。

我该怎么做PHP?

4 个答案:

答案 0 :(得分:41)

基本上,就像这样:

echo date("H:i:s",$endtime-$starttime);

$endtime-$starttime以秒为单位给出持续时间,date用于格式化输出。听起来像保存到数据库并从数据库读取不是你的问题,所以我在我的例子中留下了这个。请注意,您必须使用microtime(true)来实现此功能,使用microtime()的空格分隔输出,您无法轻松进行计算。

编辑:也可以自行完成所有计算。这只是基本的数学:

$duration = $endtime-$starttime;
$hours = (int)($duration/60/60);
$minutes = (int)($duration/60)-$hours*60;
$seconds = (int)$duration-$hours*60*60-$minutes*60;

答案 1 :(得分:17)

microtime到秒或小时或分钟转换?

microtime是php函数的名称,它返回一个以微秒为单位的时间度量,基本上微秒可以转换为:


    1 milliseconds = 1,000 microseconds
    1 second       = 1,000,000 microseconds
    1 minute       = 60,000,000 microseconds
    1 hour         = 3,600,000,000 microseconds


    or


    1 microsecond = 0.001 milliseconds
    1 microsecond = 0.000001 seconds
    1 microsecond = 0.0000000166666667 minutes
    1 microsecond = 0.000000000277777778 hours

答案 2 :(得分:3)

如果您有时间A和时间B,以秒为单位,则这两个绝对时间之间的秒数为:

B - A

如果要格式化此秒数,可以使用date来美化它。

答案 3 :(得分:3)

function formatPeriod($endtime, $starttime)
{

  $duration = $endtime - $starttime;

  $hours = (int) ($duration / 60 / 60);

  $minutes = (int) ($duration / 60) - $hours * 60;

  $seconds = (int) $duration - $hours * 60 * 60 - $minutes * 60;

  return ($hours == 0 ? "00":$hours) . ":" . ($minutes == 0 ? "00":($minutes < 10? "0".$minutes:$minutes)) . ":" . ($seconds == 0 ? "00":($seconds < 10? "0".$seconds:$seconds));
}