microtime

(PHP 4, PHP 5, PHP 7)

microtimeВозвращает текущую метку времени Unix с микросекундами

Описание

mixed microtime ([ bool $get_as_float = false ] )

Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().

Список параметров

get_as_float

Если указано и установлено в TRUE, microtime() возвратит float вместо string, как описано в разделе возвращаемых значений ниже.

Возвращаемые значения

По умолчанию microtime() возвращает string в формате "msec sec", где sec представляет собой количество секунд с начала Эпохи Unix (1 января 1970 0:00:00 GMT), а msec - это количество микросекунд, прошедших после sec.

Если параметр get_as_float установлен в TRUE, то microtime() возвратит результат в вещественном виде (float), представляющий собой текущее время в секундах, прошедших с начала Эпохи Unix с точностью до микросекунд.

Примеры

Пример #1 Замер времени выполнения скрипта с помощью функции microtime()

<?php
/**
 * Простая функция для реализации поведения из PHP 5
 */
function microtime_float()
{
    list(
$usec$sec) = explode(" "microtime());
    return ((float)
$usec + (float)$sec);
}

$time_start microtime_float();

// Спим некоторое время
usleep(100);

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

echo 
"Ничего не делал $time секунд\n";
?>

Пример #2 Замер времени выполнения скрипта в PHP 5

<?php
$time_start 
microtime(true);

// Спим некоторое время
usleep(100);

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

echo 
"Ничего не делал $time секунд\n";
?>

Пример #3 Пример использования microtime() и REQUEST_TIME_FLOAT (начиная с PHP 5.4.0)

<?php
// Выбираем время сна случайным образом
usleep(mt_rand(10010000));

// Начиная с PHP 5.4.0 в суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo 
"Ничего не делал $time секунд\n";
?>

Смотрите также

  • time() - Возвращает текущую метку времени Unix

Коментарии

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

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