这两个时间函数中哪一个更好?
我的网站上有一个表单,每隔几微秒或更短的时间由数千名用户提交,因此,我的服务器上同时有数千个请求。
所以我想使用执行时不使用任何睡眠的那个。另外,$_SERVER['REQUEST_TIME']
和time()
有多独特?两者都会每微秒改变一次吗?
每次提交表单时$ _SERVER ['REQUEST_TIME']都会更改吗?就像,time()函数会在每个时间差异时发生变化。
我需要为用户提供一个唯一的网址进行验证,其中附加了两者中任何一个产生的唯一结果?另外,使用microtime()会让PHP睡眠吗?不是吗?
答案 0 :(得分:14)
取决于。
$_SERVER['REQUEST_TIME']
对应于请求开始的时间,Web服务器提供此数据。
time()
实际运行系统调用以检查调用此行的时间。
您需要更具体地了解您的目标,以便我们为您提供完整的答案。
答案 1 :(得分:6)
time()
每秒更改一次。 <{1}} {可选地,microtime()
}更频繁。
(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);