php中time()与$_SERVER[‘REQUEST_TIME’]的区别

php中time()与$_SERVER[‘REQUEST_TIME’]的区别

大部分人可能都觉得time()$_SERVER['REQUEST_TIME']获取的时间都是一样的,其实在绝大部分情况下这两个值确实是一样的,但是有时候会有不同的值。

概念

先来看这两个函数的概念:
time()函数:http://php.net/manual/zh/function.time.php

Xnip2018-12-31_16-02-38.jpg

$_SERVER['REQUEST_TIME']http://php.net/manual/zh/reserved.variables.server.php

Xnip2018-12-31_16-03-16.jpg

实例

<?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一秒后,它们当然就相差一秒了。

Xnip2018-12-31_16-00-45.jpg

打赏

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

php中time()与$_SERVER[‘REQUEST_TIME’]的区别