2010-11-17 93 views
17

这甚至可能在PHP?如何以纳秒精度获得PHP的时间?

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

+0

出于好奇,为什么你需要PHP中的纳秒精度? – meagar 2010-11-17 18:13:43

+2

我正在做一些涉及时间同步的事情,一个程序向远程服务器询问时间。 Java可以提供纳秒级的时间,所以我认为如果我能让PHP也这样做,那将会很酷,而不是浪费额外的精度。 – Matt 2010-11-17 19:13:08

回答

34

microtime功能就是你要找的。

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

可以使用system功能,直接从机器中获得的价值,如果你运行的是Linux:

$nanotime = system('date +%s%N'); 

%s是几秒钟的量,通过%N追加,这是量纳秒。

+1

+1提到另一个选项(较早)。 – Gumbo 2010-11-17 17:59:30

+0

我正在运行linux,但由于某些原因返回0.它不适用于lighttpd吗? – Matt 2010-11-17 19:11:55

+0

@Matt,修正了'date'的参数,现在应该可以工作。 – 2010-11-17 19:17:26

9

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

+0

啊,我希望会有比这更高的东西= [ – Matt 2010-11-17 17:41:32

2

现在有了这个扩展它是纳秒时间是可能的http://pecl.php.net/hrtime。然而,它是一个秒表类,可以在不同平台上实现最高分辨率。

相关问题