如何以微秒为单位获取持续时间

3
我想要测量我php脚本中指定部分的执行时间,例如:
$startTime = microtime(true);
//some operations which needs 0.1 to 100 seconds to run
$endTime = microtime(true);

我该如何获取以微秒为单位的持续时间,以整数形式呈现?

以下方法不可行:

$duration = (int)($endTime - $startTime);

为什么不使用 round ... $duration = round($endTime - $startTime); ... 它返回一个浮点类型,但它将返回一个整数 ... - keithhatfield
2
你正在以整数形式获取时间,但你对整数的基本理解存在误解。当你使用(int)将小于1的值强制转换为整数时,其会被设置为0。你可能想要像这样做:$ duration = $ endTime- $ startTime; $ duration = number_format($ duration,2); - Garry Welding
2
等一下,让我们定义一下你所谓的“微秒整数”是什么意思...如果脚本运行需要0.23秒,你想要看到230吗? - keithhatfield
2
@dleiftah 是的,我需要微秒(2300),而不是秒数。 - Roland
1个回答

4

如果您想要微秒作为整数:

$duration = round(($endTime - $startTime) * 1000000)

4
你提到了毫秒,它等于10的6次方(即1,000,000)次幂。 - Luca Rainone
2
完美!也可以这样做:(int)(($endTime - $startTime) * pow(10,6)) - Mike
作为一条注释...将其转换为整数会始终向下取整,因此有可能两者会产生不同的结果... - keithhatfield

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接