microtime
(PHP 4, PHP 5, PHP 7)
microtime — Возвращает текущую метку времени Unix с микросекундами
Описание
$as_float
= false
) : string|floatФункция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().
Для измерения производительности рекомендуется использовать hrtime().
Список параметров
-
as_float
-
Если указано и установлено в
true
, microtime() возвратит число с плавающей точкой (float) вместо строки (string), как описано в разделе возвращаемых значений ниже.
Возвращаемые значения
По умолчанию microtime() возвращает строку (string)
в формате "msec sec", где sec
представляет собой
количество секунд с начала эпохи Unix
(1 января 1970 0:00:00 GMT), а msec
- это количество микросекунд, прошедших после sec
.
Если параметр 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(100, 10000));
// Начиная с PHP 5.4.0 в суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
echo "Ничего не делал $time секунд\n";
?>