timestamp — получение разницы во времени в микронах или миллисекундах в переполнении стека

Я пытаюсь найти время, необходимое для выполнения какой-либо функции с помощью php.
Я хочу точность в милли или микросекундах, но получаю разницу в секундах.

Код выглядит следующим образом:

<?php

$time_start = microtime(true);usleep(2000000);

$time_end = microtime(true);

$time = $time_end - $time_start;

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

Выходное значение, которое я получаю, составляет 2 микросекунды, но оно должно быть 2000000 микросекунд в соответствии с программой.

Если я продолжу спать (100), это даст мне 0 разницы.

Пожалуйста, помогите мне с некоторым решением этого.

0

Решение

Результат microsecond(true) представляет собой число с плавающей точкой, «которое представляет текущее время в секундах» и «с точностью до ближайшей микросекунды» (http://php.net/microtime). Десятичные знаки после запятой в секундах, а десятичные после запятой представляют микросекунды.

Поэтому пример в руководстве более правильный, чем ваш вариант:

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

Если выполнение занимает ровно две секунды, оно выдаст:

Did nothing in 2 seconds

Если выполнение занимает две секунды и 500 миллисекунд, оно выдаст:

Did nothing in 2.5 seconds
2

Другие решения

используйте этот код

<?php

function secondsConverter($dateTime1,$dateTime2)
{
$hour=abs($dateTime1['hour']-$dateTime2['hour'])*3600;
$minutes=abs($dateTime1['minute']-$dateTime2['minute'])*60;
$seconds=abs($dateTime1['second']-$dateTime2['second']);

return $hour+$minutes+$seconds;
}

$dateTime1=date_parse("10:00:00.5");
$dateTime2=date_parse("11:00:00.5");
echo secondsConverter($dateTime1,$dateTime2);

?>
0

По вопросам рекламы [email protected]