希望从以下位置获取毫秒值:microtime(true) 和 number_format()

Posted

技术标签:

【中文标题】希望从以下位置获取毫秒值:microtime(true) 和 number_format()【英文标题】:Looking to get millisecondes value from: microtime(true) and number_format() 【发布时间】:2014-02-04 05:14:33 【问题描述】:

好的,我知道这不是关于 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)。感谢您的帮助,如果这是之前在单行命令中的答案,我真的很抱歉再次问这个问题。

【问题讨论】:

【参考方案1】:

这与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

【讨论】:

嘿,谢谢!但是当我使用 true 时,即使数字格式为 4,我最后也会得到 E 的值。或者我得到数百万的值。是否有任何配置服务器可以影响这些功能?尤其是 Number_format 可能? 不。您传递了错误的值number_format,仅此而已。如果您的 $timetrace 变量设置不正确,那么差异将是巨大的,您将得到一个愚蠢的输出。正如我已经说过的,打印$timetrace 的内容,您会发现它不包含您所期望的内容。 你把 mu 放在了正确的方向上。我最终得到了一个稍微不同的功能来管理它,但是非常感谢!!!!【参考方案2】:

根据 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$==# 启动时间 = ".ms();

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

如果我通过 1 - echo "CPU$==# 启动时间 = ".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

是的,性能真的很糟糕。仅用于准备 google 查询的前 530 毫秒太高了,插入 600 行的 12 秒太疯狂了。某处坏了! =) 但至少,现在我可以对我的进度进行基准测试了。

谢谢!!!

【讨论】:

以上是关于希望从以下位置获取毫秒值:microtime(true) 和 number_format()的主要内容,如果未能解决你的问题,请参考以下文章

PHP_EOL 写入字符串换行 , php获取毫秒 microtime

如何在 PHP 中以毫秒为单位获取当前时间?

如何从日期对象python获取以毫秒(秒后3位小数)为单位的时间值?

PHP——获取当前时间精确到毫秒(yyyyMMddHHmmssSSS)

PHP获取当前毫秒级别时间戳

PHP获取当前毫秒级别时间戳