microtime

(PHP 4, PHP 5)

microtimeReturn current Unix timestamp with microseconds

Description

mixed microtime ([ bool $get_as_float = false ] )

microtime() returns the current Unix timestamp with microseconds. This function is only available on operating systems that support the gettimeofday() system call.

Parameters

get_as_float

If used and set to TRUE, microtime() will return a float instead of a string, as described in the return values section below.

Return Values

By default, microtime() returns a string in the form "msec sec", where sec is the number of seconds since the Unix epoch (0:00:00 January 1,1970 GMT), and msec measures microseconds that have elapsed since sec and is also expressed in seconds.

If get_as_float is set to TRUE, then microtime() returns a float, which represents the current time in seconds since the Unix epoch accurate to the nearest microsecond.

Changelog

Version Description
5.0.0 The get_as_float parameter was added.

Examples

Example #1 Timing script execution with microtime()

<?php
/**
 * Simple function to replicate PHP 5 behaviour
 */
function microtime_float()
{
    list(
$usec$sec) = explode(" "microtime());
    return ((float)
$usec + (float)$sec);
}

$time_start microtime_float();

// Sleep for a while
usleep(100);

$time_end microtime_float();
$time $time_end $time_start;

echo 
"Did nothing in $time seconds\n";
?>

Example #2 Timing script execution in PHP 5

<?php
$time_start 
microtime(true);

// Sleep for a while
usleep(100);

$time_end microtime(true);
$time $time_end $time_start;

echo 
"Did nothing in $time seconds\n";
?>

Example #3 microtime() and REQUEST_TIME_FLOAT (as of PHP 5.4.0)

<?php
// Randomize sleeping time
usleep(mt_rand(10010000));

// As of PHP 5.4.0, REQUEST_TIME_FLOAT is available in the $_SERVER superglobal array.
// It contains the timestamp of the start of the request with microsecond precision.
$time microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo 
"Did nothing in $time seconds\n";
?>

See Also

  • time() - Return current Unix timestamp

Коментарии

microtime() does not return microseconds in neither of the return modes
Normally returns "0.39081500 1709893727", first value trying to express the microsecond precision, but failing, because microseconds are a millionth part of a second, which means 6 decimals, not 8
Second mode returns numbers like these "1709894168.1621", "1709894209.819", with 3 or 4 decimals, depending on mood, but never with 6, as the function would suggest

To be able to actually return microseconds or seconds with microsecond precision, I am using a wrapper
function microtime_real($inSeconds = false)
{
        if ($inSeconds === true) {
            return number_format(microtime(true), 6, '.', '');
        }
        return (string)intval(microtime(true)* 1000000);
}
2024-03-08 13:34:28
http://php5.kiev.ua/manual/ru/function.microtime.html

    Поддержать сайт на родительском проекте КГБ