microtime

Return current Unix timestamp with microseconds

&reftitle.description; ``string``float```microtime` `bool` `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.

For performance measurements, using `hrtime` is recommended.

&reftitle.parameters;

`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.

&reftitle.returnvalues;

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 as a decimal fraction.

If `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.

&reftitle.examples;

### Timing script execution

    <?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";
    ?>

### `microtime` and `REQUEST_TIME_FLOAT`

    <?php
    // Randomize sleeping time
    usleep(mt_rand(100, 10000));

    // 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";
    ?>

&reftitle.seealso;

- `time`
- `hrtime`