php microtime获取浮点的时间戳
前端之家收集整理的这篇文章主要介绍了
php microtime获取浮点的时间戳,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一直以来用这个函数获取:
<div class="codetitle"><a style="CURSOR: pointer" data="2697" class="copybut" id="copybut2697" onclick="doCopy('code2697')"> 代码如下:
<div class="codebody" id="code2697">
function microtime_float(){
list($usec,$sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
看到别人的源码中用microtime(true),查了下手册,原来从
PHP 5.0.0 开始,microtime
增加了这个参数。
引用
<div class="codetitle">
<a style="CURSOR: pointer" data="94411" class="copybut" id="copybut94411" onclick="doCopy('code94411')"> 代码如下: <div class="codebody" id="code94411">
mixed microtime ( [bool get_as_float] )
microtime() 当前 Unix 时间戳以及微秒数。本
函数仅在
支持 gettimeofday() 系统
调用的操作系统下可用。
如果
调用时不带可选参数,本
函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1,1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。
注意: get_as_float 参数是
PHP 5.0.0 新加的。
如果程序肯定在
PHP5以上的环境运行,那么就直接使用microtime(true)吧,比使用microtime_float
函数至少快两倍。以下是我简单测试的程序
代码。
<div class="codetitle">
<a style="CURSOR: pointer" data="72385" class="copybut" id="copybut72385" onclick="doCopy('code72385')"> 代码如下: <div class="codebody" id="code72385">
<?
PHP function microtime_float3(){
return microtime(true);
}
function microtime_float2(){
if(
PHP_VERSION > 5){
return microtime(true);
}else{
list($usec,microtime());
return ((float)$usec + (float)$sec);
}
}
function microtime_float(){
list($usec,microtime());
return ((float)$usec + (float)$sec);
}
function runtime($t1){
return number_format((microtime_float() - $t1)*1000,4).'ms';
}
$t1 = microtime_float();
for($i=0;$i<10000;$i++){
microtime_float();
}
echo "microtime_float=====";
echo runtime($t1).'
';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime(true);
}
echo "microtime_true=====";
echo runtime($t1).'
';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime_float2();
}
echo "microtime_float2=====";
echo runtime($t1).'
';
$t1 = microtime(true);
for($i=0;$i<10000;$i++){
microtime_float3();
}
echo "microtime_float3=====";
echo runtime($t1).'
';
?>
本机winxp运行结果:
microtime_float=====109.5631ms
microtime_true=====38.8160ms
microtime_float2=====52.7902ms
microtime_float3=====45.0699ms
Linux上运行结果:
microtime_float=====47.2510ms
microtime_true=====9.2051ms
microtime_float2=====16.3319ms
microtime_float3=====12.2800ms
在
PHP5的环境下,直接使用microtime(true);显然是最快的。microtime_float2和microtime_float3都可以在不改变原有程序的情况下,直接
修改函数内容来实现
性能的轻微提升。microtime_float2可以做为兼容旧版本的写法。
原文链接:https://www.f2er.com/php/28772.html