2016-07-27 56 views
0

我想计算查询执行时间。 这是我的代码:microtime(true)在PHP中不返回正确的值

$stmt = $conn->prepare($query);  
$start = microtime(true); // echo $start would return xxxxxxx.xxxx 
$stmt->execute(); 
$end = microtime(true); 
list($usec, $sec) = explode(".", $start); 
$timestart = ((float)$usec + (float)$sec); 
list($usec, $sec) = explode(".", $end); 
$timeend = ((float)$usec + (float)$sec); 
echo "$timeend - $timestart =".($timeend - $timestart); 

结果我从echo命令得到的是:1469612504 - 1469619953 =-7449 我不明白怎么$timeend$timestart较小。

我在做什么错? 我想我没有计算$ timestart和$ timeend正确..

+1

你为什么爆炸浮动? PHP非常有能力直接减去花车。 –

+0

''$ timeend - $ timestart =“'改为分号''$ timeend - $ timestart =''因为”冒号显示的变量在 – Danielius

+0

@Danielius最有可能是这个点 –

回答

3

没有必要爆炸的$start$end变量:

$stmt = $conn->prepare($query);  
$start = microtime(true); // echo $start would return xxxxxxx.xxxx 
$stmt->execute(); 
$end = microtime(true); 
echo "$timeend - $timestart =".($end - $start); 
+0

你也可以只使用一个变量,像“player27”在[PHP文档]中提到过它(http://php.net/manual/de/function.microtime.php#111107)。'$ time = -microtime(true);/* do stuff; */echo'exec time is'。microtime(true)+ $ time' –