Php cookie更新滞后

Php cookie更新滞后,php,cookies,Php,Cookies,我正在用这个基本的cookie脚本进行toruble cookie信息更新似乎有延迟 代码如下: $year = time() + (1 * 365 * 24 * 60 * 60); // this adds one year to the current time, for the cookie expiration $time = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s').'- 2 days')); setcookie("lasto

我正在用这个基本的cookie脚本进行toruble

cookie信息更新似乎有延迟

代码如下:

$year = time() + (1 * 365 * 24 * 60 * 60); // this adds one year to the current time,  for the cookie expiration
$time = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s').'- 2 days'));
setcookie("lastonline", $time, $year);

echo '<p><p><p>cookie set to '.$time;

$cookietime = $_COOKIE['lastonline'];

echo '<p>Cookie says '.$cookietime;
$year=time()+(1*365*24*60*60);//这将在当前时间的基础上增加一年,使cookie过期
$time=日期('Y-m-d H:i:s',标准时间('Y-m-d H:i:s')。-2天);
setcookie(“lastonline”,$time,$year);
echo'cookie设置为'.$time;
$cookietime=$\u COOKIE['lastonline'];
echo“Cookie说“$cookietime;
我的问题是,我运行这个脚本时将$time变量设置为-1天,然后将其更改为-2天,报告中说“cookie设置为(2天以前)”,cookie说(1天以前)


如果我第二次刷新脚本,它会正确地显示出来,即“cookie设置为(2天前)”,Cokie说(2天前),但为什么需要延迟或第二次刷新?

注意,
setcookie()
调用请求客户机存储cookie。该cookie仅在发送到服务器的下一个请求的上下文中发送回服务器,同时您尝试在执行
setcookie()
的同一脚本运行中对其进行评估。这是行不通的,因为在该脚本运行中,您正在评估
$\u COOKIE
存储,该存储由上一个服务器请求填充,而该服务器刚刚触发了您的脚本运行

这就解释了一次换装的区别

这不是一个bug或任何东西,你的逻辑是错误的