Я пытаюсь найти время, необходимое для выполнения какой-либо функции с помощью 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 разницы.
Пожалуйста, помогите мне с некоторым решением этого.
Результат 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
используйте этот код
<?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);
?>