我已经看过几个关于这个主题的问题,都有相同的基本答案。使用microtime()记录开始和结束时间,然后减去。除非事件跨越秒增加的点,否则这大部分都有效。此时,结束时间可能小于开始时间。
你可以使用一个函数为microtime()添加秒数来获得秒+微量时间吗?
示例:
function getSMtime() {
return time() + (microtime() / 1000000);
}
$start = getSMtime();
... some code to be timed ...
$end = getSMtime();
echo "Time elapsed: " . ($end - $start) . " seconds.";
答案 0 :(得分:6)
您应该提供参数true
以获取结果的浮点数,而不是字符串:
microtime(true)
默认情况下,
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
参数。