Кажется, что microtime()
выглядит странно, потому что у PHP есть порог, по обе стороны от которого он отображает либо число в научной записи, либо число в десятичной записи. Оба они технически "плавают" ( см. Документацию ).
Кажется, что этот порог находится где-то между 0,8 секунды и 0,9 секунды; по крайней мере, так завершились мои тесты. Использование следующего кода покажет научную запись:
$start4 = microtime(true);
sleep(0.8);
$end4 = microtime(true);
echo 'Time4: ' . ($end4 - $start4) . '<br />';
Но если мы изменим время ожидания на sleep(0.9)
, будет получено десятичное число. Это может или не может иметь место на всех системах или установках, но это, по крайней мере, то, что показали мои тесты.
Вы можете противодействовать этому самостоятельно, используя функцию sprintf()
, например:
$start4 = microtime(true);
sleep(0.8);
$end4 = microtime(true);
echo 'Time4: ' . sprintf('%f', $end4 - $start4) . '<br />';
Это всегда будет показывать время в виде десятичного числа.