Home  >  Article  >  Backend Development  >  php microtime gets floating point timestamp_PHP tutorial

php microtime gets floating point timestamp_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:41:091069browse

I have been using this function to obtain:

Copy code The code is as follows:

function microtime_float(){
list($ usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

See others Microtime(true) is used in the source code. After checking the manual, it turns out that starting from PHP 5.0.0, microtime has added this parameter.
Quote
Copy code The code is as follows:

mixed microtime ( [bool get_as_float] )
microtime() The current Unix timestamp and microseconds. This function is only available under operating systems that support the gettimeofday() system call.
If called without optional parameters, this function returns a string in the format "msec sec", where sec is the number of seconds since the Unix epoch (0:00:00 January 1, 1970 GMT) , msec is the microsecond part. Both parts of the string are returned in seconds.
If the get_as_float parameter is given and its value is equivalent to TRUE, microtime() will return a floating point number.
Note: The get_as_float parameter is newly added in PHP 5.0.0.

If the program is definitely running in an environment above PHP5, then use microtime(true) directly, which is at least twice faster than using the microtime_float function. The following is the program code for my simple test.
Copy code The code is as follows:

function microtime_float3(){
return microtime( true);
}
function microtime_float2(){
if( PHP_VERSION > 5){
return microtime(true);
}else{
list($usec, $ sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
}
function microtime_float(){
list($usec, $sec) = explode(" ", 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).'
';
?>

The local winxp running result:
microtime_float=====109.5631ms
microtime_true= ====38.8160ms
microtime_float2=====52.7902ms
microtime_float3=====45.0699ms
Run result on Linux:
microtime_float=====47.2510ms
microtime_true=====9.2051ms
microtime_float2=====16.3319ms
microtime_float3=====12.2800ms
In PHP5 environment, using microtime(true) directly; is obviously the fastest of. Both microtime_float2 and microtime_float3 can directly modify the function content to achieve slight performance improvements without changing the original program. microtime_float2 can be written to be compatible with older versions.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321246.htmlTechArticleI have been using this function to obtain: Copy the code The code is as follows: function microtime_float(){ list($usec, $sec ) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } See...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn