PHP microtime使用,第一个返回的到底是微妙还是毫秒?

官方手册上面写的是微秒,个人觉得好像是毫秒。
比如:使用函数获得0.25139300 1138197510然后组合1138197510.25139300就是当前的时间秒数,第二次获得的microtime:1138197511.60139300就可以获得执行时间秒数。比如1.35秒,而这里的0.35秒明显是秒相减的结果,而1/1000秒=1毫秒=1000微秒啊!能不能帮我解释一下到底怎么回事?
感谢imkow的回答,现在我明白了。当我们使用gettimeofday时,可以看到时间戳和微妙数。而microtime是基于gettimeofday的,比如(这里时间上有一定的误差,我是一次执行这两个函数)
这里是gettimeofday的值:
array
'sec' => int 1321926926
'usec' => int 914804
'minuteswest' => int -480
'dsttime' => int 0
这里是microtime(TRUE)的值:
float 1321926926.915
也就是说这里的0.915是来源于微秒914804然后转换为秒的。官方手册说前一个是微秒,也就是说0.915是微秒,这样我们如果转换为秒再计算是行不通的。

获得的值是微秒 microsecond。
比如0.25139300 ,有效数字是6位,正好符合1秒=1,000毫秒=1,000,000微秒

使用echo microtime(true);直接获得浮点值。

楼主测到一个0.35时差,可能是巧合正好在350毫秒之间。函数本身精确到微秒的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-27
字符串的两部分的单位都是秒,第一部分是精确到微秒的部分,第二部分是精确到秒的部分,不带参数true的时候,结果分割成这两部分了而已。
第2个回答  2011-11-21
microtime — 返回当前 Unix 时间戳和微秒数
第3个回答  2011-11-21
是微秒,应该是你程序设计的问题
相似回答