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

svk*_*svk 19 php

我将商店的开始时间称为microtime(),结束时间为microtime()到数据库中.

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

我怎么能用PHP做?

oez*_*ezi 42

基本上,像这样:

echo date("H:i:s",$endtime-$starttime);
Run Code Online (Sandbox Code Playgroud)

$endtime-$starttime给出持续时间(以秒为单位),日期用于格式化输出.听起来像保存到数据库并从数据库读取不是你的问题,所以我在我的例子中留下了这个.请注意,你必须使用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;
Run Code Online (Sandbox Code Playgroud)

  • 你的第一个例子并不总是有效.`microtime`返回一个unix时间戳,显然是从UTC的1/1/70 00:00:00开始.如果`$ endtime - $ starttime`大于24小时,则返回的diff时间戳将代表2/1/70 01:00:00 UTC(假设它恰好是25小时).将其格式化为"H:i:s"将给出01:00:00`,这似乎是一个小时. (6认同)
  • 另外,在你的第二个例子中可能值得指出`microtime()`返回一个字符串`timestamp <space> microseconds` - 你不能对此做数学,所以你需要使用`microtime(true) "得到一个漂浮物 (2认同)
  • 是的,但是'd`只会让你到31天!它是旁边的,因为php执行时间限制应该*永远*允许脚本运行那么长时间 (2认同)

小智 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


ahm*_*eda 5

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));
}
Run Code Online (Sandbox Code Playgroud)