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

sql*_*ild 13 php performance time reliability

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

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

所以我想使用执行时不使用任何睡眠的那个.此外,如何独特之处是$_SERVER['REQUEST_TIME']time()?每两微秒都会改变吗?

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

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

Int*_*idd 14

这取决于.

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

time() 实际上运行一个系统调用,以检查调用此行的时间.

您需要更具体地了解您想要做的事情,以便我们为您提供完整的答案.

  • 那你不能指望时间了。也许生成一个随机令牌并用请求的 tim 和 ip 加盐,这应该可以解决问题。 (2认同)

Ali*_*man 6

time()每秒更改一次. microtime()(可选地,(true)更频繁地).

$_SERVER['REQUEST_TIME']在PHP进程启动时设置,但它只是一个简单的变量查找,因此更快.大多数情况下,您不需要微秒分辨率,特别是如果该过程仅在几分之一秒内运行以生成网页.

  • 微型时间不会睡觉.如果您需要一个唯一值,请使用为此设计的内容 - 例如http://php.net/manual/en/function.uniqid.php或其他一些UUID生成器. (2认同)

Day*_*tar 6

来自php.net:

$ _SERVER [ 'REQUEST_TIME_FLOAT'];
请求开始的时间戳,精度为微秒.

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


Way*_*tty 1

如果出于验证目的需要唯一,您应该使用 time() 或 microtime() 或 uniqid()。

问题是,为什么你需要时间来表现得独一无二?

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

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