首页 > 解决方案 > 管理员如何取消设置用户的所有 Cookie

问题描述

我有一个网站,每天都会举办艺术比赛,晚上 9 点,管理员决定某人为获胜者,他还想取消所有用户的所有 cookie。

我设置了一天的 Cookie

$cookie_name = "participated";
$cookie_value = "yes";
    
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 

有什么方法可以在每天晚上 9 点取消设置,或者管理员可以在每天晚上 9 点取消设置所有 cookie?

编辑:代码尝试

<?php
date_default_timezone_set('Asia/Kolkata');

if(date("H") <= 12){
    $date = date("H");
}else{
    
$date = date("H")-12;
}

echo 9-$date;
?>

标签: phpcookiessession-cookies

解决方案


使用 DateTime 内置类,您可以简单地做

$cookie_name = "participated";
$cookie_value = "yes";

// get the timestamp of today @ 9PM to use as the expiry time
$expire = (new DateTime('today 21:00:00'))->getTimestamp();

// or with a specific timezone
//$expire = (new DateTime('today 21:00:00', new DateTimeZone('Asia/Kolkata')))->getTimestamp();

setcookie($cookie_name, $cookie_value, $expire, "/"); 

推荐阅读