php - 管理员如何取消设置用户的所有 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;
?>
解决方案
使用 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, "/");
推荐阅读
- ubuntu - 可以创建文件,但不能修改?
- r - 在 Plumber 上运行 R 脚本时出现“节点堆栈溢出”错误
- html - 当使用相同的 css 作为内部 css 时,调用外部 css 文件的结果不同
- python-3.x - 灰度 .png 到 numpy 数组
- python - 是否有 REST API 反向代理库来注入请求标头?
- ios - 有没有办法从表格视图单元格中的文本字段中获取值以在另一个表格视图单元格中使用它?
- javascript - 不能让函数再次运行
- django - 如何在 Django-Admin 中限制用户中的组数
- python - 如何使用 open cv 在脑肿瘤上绘制矩形?
- maps - 合并 Elixir 地图