用什么? time()函数或$ _SERVER ['REQUEST_TIME']?哪个更好?

时间:2012-08-24 10:32:01

标签: php performance time reliability

这两个时间函数中哪一个更好?

我的网站上有一个表单,每隔几微秒或更短的时间由数千名用户提交,因此,我的服务器上同时有数千个请求。

所以我想使用执行时不使用任何睡眠的那个。另外,$_SERVER['REQUEST_TIME']time()有多独特?两者都会每微秒改变一次吗?

每次提交表单时$ _SERVER ['REQUEST_TIME']都会更改吗?就像,time()函数会在每个时间差异时发生变化。

我需要为用户提供一个唯一的网址进行验证,其中附加了两者中任何一个产生的唯一结果?另外,使用microtime()会让PHP睡眠吗?不是吗?

6 个答案:

答案 0 :(得分:14)

取决于。

$_SERVER['REQUEST_TIME']对应于请求开始的时间,Web服务器提供此数据。

time()实际运行系统调用以检查调用此行的时间。

您需要更具体地了解您的目标,以便我们为您提供完整的答案。

答案 1 :(得分:6)

time()每秒更改一次。 <{1}} {可选地,microtime()}更频繁。

PHP进程启动时设置了

(true),但它只是一个简单的变量查找,因此速度更快。大多数情况下,您不需要微秒分辨率,特别是如果该过程仅在几分之一秒内运行以生成网页。

答案 2 :(得分:6)

来自php.net:

  

$ _ SERVER [ 'REQUEST_TIME_FLOAT'];   
请求开始的时间戳,精确到微秒。

http://php.net/manual/en/reserved.variables.server.php (但要小心,请参阅Alister关于使用REQUEST_TIME的说明)

答案 3 :(得分:2)

$_SERVER['REQUEST_TIME']是会话开始的时间,与使用time()microtime()完全不同,因为它是该运行的常量。

答案 4 :(得分:1)

如果为了验证目的,这应该是唯一的,你应该使用time()或microtime()或uniqid()。

问题是,为什么你需要时间独特?

编辑:因为你编辑了你的问题。

$ _ SERVER ['REQUEST_TIME']将为您提供请求开始的时间戳。它将根据用户提出请求的时间而改变。

答案 5 :(得分:1)

你应该考虑基于microtime()

的毫秒数
$milliseconds = round(microtime(true) * 1000);