microtime
(PHP 4, PHP 5, PHP 7)
microtime — Возвращает текущую метку времени Unix с микросекундами
Описание
Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().
Список параметров
Возвращаемые значения
По умолчанию 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(100, 10000));
// Начиная с PHP 5.4.0 в суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
echo "Ничего не делал $time секунд\n";
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с датой и временем
- Дата и Время
- checkdate
- date_add
- date_create_from_format
- date_create_immutable_from_format
- date_create_immutable
- date_create
- date_date_set
- date_default_timezone_get
- date_default_timezone_set
- date_diff
- date_format
- date_get_last_errors
- date_interval_create_from_date_string
- date_interval_format
- date_isodate_set
- date_modify
- date_offset_get
- date_parse_from_format
- date_parse
- date_sub
- date_sun_info
- date_sunrise
- date_sunset
- date_time_set
- date_timestamp_get
- date_timestamp_set
- date_timezone_get
- date_timezone_set
- date
- getdate
- gettimeofday
- gmdate
- gmmktime
- gmstrftime
- idate
- localtime
- microtime
- mktime
- strftime
- strptime
- strtotime
- time
- timezone_abbreviations_list
- timezone_identifiers_list
- timezone_location_get
- timezone_name_from_abbr
- timezone_name_get
- timezone_offset_get
- timezone_open
- timezone_transitions_get
- timezone_version_get
Коментарии
Sometimes you need to get not seconds but milliseconds since the UNIX epoch:
function millis() : int {
[$milli, $seconds] = explode(' ', microtime()); // from string(21) "0.67932100 1748377570"
return intval($seconds) * 1000 // intval(0.67932100 * 1000) is 679
+ intval(doubleval($milli) * 1000); // 679 + (1748377570 * 1000) = full milliseconds (1000 ms per one s)
}