php中time()与$_SERVER[‘REQUEST_TIME’]的区别
大部分人可能都觉得time()
与$_SERVER['REQUEST_TIME']
获取的时间都是一样的,其实在绝大部分情况下这两个值确实是一样的,但是有时候会有不同的值。
概念
先来看这两个函数的概念:
time()
函数:http://php.net/manual/zh/function.time.php
$_SERVER['REQUEST_TIME']
:http://php.net/manual/zh/reserved.variables.server.php
实例
<?php
sleep(1);
echo '<br><br>';
var_dump(time(), $_SERVER['REQUEST_TIME']);
例子的答案如下图,可以看到$_SERVER['REQUEST_TIME']
刚好比time()
少1秒,根本原因是$_SERVER['REQUEST_TIME']
只是一个变量,我们只是打印它的值罢了,但其实从php接收到请求开始这个变量就已经生成了,也就是说,$_SERVER['REQUEST_TIME']
的值是在sleep(1)
之前生成的,而time()
函数就不同了,它是调用了它之后,才会获取此刻的unix时间戳(即从1970-01-01 00:00:00
到调用该函数那一刻的秒数),一个在sleep一秒前,一个在sleep一秒后,它们当然就相差一秒了。
觉得文章对你有用的话鼓励一下我吧