如何在纳秒精度的PHP中获得时间?

Mat*_*att 20 php datetime nanotime

这在PHP中甚至可能吗?

如果没有,可用的最高精度是多少?

Jac*_*kin 36

microtime功能正是您所需要的.

PHP不提供精度高于微秒的函数.

system如果您正在运行Linux,则可以使用该函数直接从计算机获取值:

$nanotime = system('date +%s%N');
Run Code Online (Sandbox Code Playgroud)

%s是附加的秒数,%N即纳秒数.

  • 出于好奇:像`system`这样的系统调用需要生成一个shell并将输出返回给PHP.这不会花费超过一纳秒吗?如果是这样,难道它不能达到纳秒精度的寻找时间的目的吗?请指教. (6认同)

bco*_*sca 11

microtime()是使用PHP词汇表的最高精度.您也可以使用Unix进行系统调用,如果需要纳秒精度,也可以date指定%N格式.Unix ntp_gettime()具有更高的分辨率并返回抖动/漂移/稳定性/移位/校准数据.


Ana*_*ski 6

现在,有了这个扩展,可以实现http://pecl.php.net/hrtime的纳秒级计时。但是,它是一种秒表类,实现为在不同平台上提供尽可能高的分辨率。

从PHP 7.3开始hrtime(),核心http://php.net/manual/en/function.hrtime.php中还具有跨平台功能。