Какова точность микросекунд в PHP под разными операционными системами? - PullRequest
3 голосов
/ 13 июля 2011

Если я сделаю:

echo microtime(true);

Я получаю следующие результаты:

  • В моей локальной среде разработки Windows я получаю точность в 4 цифры (например, 1310564569.4162).
  • На моем живом сервере CentOS (Linux) я получаю точность до 2 цифр (например, 1310564569.41).

ОК, так что в зависимости от платформы, на которой вы работаете, вы можете получать различные значения точности? Или это конфигурация PHP / OS?

Также из микротайма Документы PHP:

Эта функция доступна только в операционных системах, которые поддерживают Системный вызов gettimeofday ().

Какие операционные системы (или условия / конфигурации) не поддерживают это?

1 Ответ

1 голос
/ 13 июля 2011

Если вы передадите true в microtime () в качестве единственного параметра, PHP вернет время в более очевидном формате - seconds.microseconds, например: 1174676587.5996

При использовании microtime (),имейте в виду, что возвращаемое значение является числом с плавающей точкой.В вашем файле php.ini есть настройка, называемая «точность», которая задает количество значащих цифр, отображаемых в числах с плавающей запятой. Обратите внимание, что это значащие цифры, а не десятичные разряды, что означает, что ваше возвращаемое значение из microtime () можетне будь так точен, как ты хочешь.Выше, например, вы можете видеть, что мы вернули только четыре десятичных знака - это потому, что php.ini по умолчанию имеет значение точности 14, а перед десятичным знаком есть десять цифр.

Если вы увеличиваете значение точностискажем, до 18, и снова запустив microtime (), вы получите более точные результаты: 1174677004.8997819.

от tuxradar.com

...