我将商店开始时间作为microtime(),结束时间作为microtime()进入数据库。
现在我想计算脚本执行秒/分钟/小时的时间。
我该怎么做PHP?
答案 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));
}