希望获得millisecondes值:microtime(true)和number_format()

时间:2014-02-04 05:14:33

标签: php

好的,我知道这不是关于microtime和number_format的第一个问题,但似乎没有人能够提出虚拟证明答案。所以,作为假人,这是我的问题:

如何以毫秒为单位输出2个microtime(true)变量的结果。我的意思是1是1毫秒,1000是1秒。

所以,如果花费少于一毫米,我得到1.如果花了1/2秒,我得到500.

我目前这样做: number_format((microtime(true) - $ timetrace),4)

我明白了: 1,391,490,671.8339 =)

$ timetrace之前在代码中设置为$ timetrace = microtime(true)。 Thansk寻求帮助,如果以前在一行命令中回答,我真的很抱歉再次询问。

2 个答案:

答案 0 :(得分:0)

这与number_format无关 我敢打赌,你没有把你想要的东西放在$timetrace变量中。

见这个例子:

<?php
$timetrace = microtime(true);
sleep (1); // wait about 1 second
$elapsed_time = microtime(true) - $timetrace;
echo "$elapsed_time<br>";
echo number_format($elapsed_time, 4) . "<br>";
?>

输出:

1.0120580196381
1.0121

答案 1 :(得分:0)

基于kuroi neko建议,我确实建了一个小功能,它完美地工作!非常感谢!!

Function ms($overall=0)
{
global $timetrace;
global $starttrace;

if ($overall==1){
    $result = microtime(true) - $initialtrace;
}else{
    $result = microtime(true) - $timetrace;
}

$result = number_format($result, 4);
$result = $result * 1000;
if ($result < 1)$result = 1;

// Reset timetrace
$timetrace = microtime(true);
return $result." ms<br>";
}

在代码中我只需要: if(isset($ timetrace))echo“CPU $ ==#initiation time =”。ms();

这给了我最后一次回声之间的时间。 (isset实际上是我在开始时配置的变量,看我是否处于'时间调试模式')

如果我传1 - echo“CPU $ ==#initiation time =”。ms(1); - 我得到自页面顶部以来的脚本总持续时间的结果,而不是最后一个回声。

以下是输出示例:

CPU$==# INSERT = 12.4 ms
CPU$==# DATE SET FOR GOOGLE QUERY = 530.4 ms
CPU$==# GOOGLE QUERY EXECUTED = 308.8 ms
CPU$==# INSERT 606 ROW = 12290.3 ms
CPU$==# CLOSE LOG WITH SUCCESS = 25.4 ms
Success

是的,表演非常可怕。准备谷歌查询的前530毫秒太高,插入600行12秒是疯了。某处被严重破坏了! =)但至少,现在我将能够对我的进展进行基准测试。

谢谢!!!