用PHP经过的时间?

时间:2016-12-14 20:13:57

标签: php microtime

我已经看过几个关于这个主题的问题,都有相同的基本答案。使用microtime()记录开始和结束时间,然后减去。除非事件跨越秒增加的点,否则这大部分都有效。此时,结束时间可能小于开始时间。

你可以使用一个函数为microtime()添加秒数来获得秒+微量时间吗?

示例:

function getSMtime() {
    return time() + (microtime() / 1000000);
}

$start = getSMtime();
... some code to be timed ...
$end = getSMtime();
echo "Time elapsed: " . ($end - $start) . " seconds.";

1 个答案:

答案 0 :(得分:6)

您应该提供参数true以获取结果的浮点数,而不是字符串:

 microtime(true)

来自documentation

  

默认情况下,microtime()返回格式为#34; msec sec"的字符串,其中sec是自Unix纪元以来的秒数(格林尼治标准时间1970年1月1日0:00:00) ,msec测量自秒以来经过的微秒,并以秒为单位表示。

     

如果get_as_float设置为TRUE,则microtime()返回一个浮点数,表示自Unix纪元精确到最接近的微秒以来的当前时间(以秒为单位)。

因此,如果您不提供此参数,则返回值将为以下字符串:

  

0.65538700 1481746900

...其中第一部分始终是介于0和1之间的值。如果将结果字符串除以1000000,则会隐式转换为数字,从而忽略字符串的第二部分。实际上,您只能使用时间戳的微秒 部分 进行计算。

结论:使用true参数。