将Cookie设置为在当天结束时到期

时间:2014-01-27 19:27:30

标签: php cookies time mktime

我想设置一个Cookie并让它在当天结束时到期

这有效,但在24小时后过期:

setcookie('route_upgrade_voted', true, time()+86400);

这不起作用:

setcookie('route_upgrade_voted', true,  mktime(24,0,0) - time());

2 个答案:

答案 0 :(得分:7)

最简单的是:

setcookie('route_upgrade_voted', true, strtotime("tomorrow"));

我希望这会有所帮助:)

答案 1 :(得分:2)

Cookie到期时间是一个ABSOLUTE值,基于自1970年1月1日以来的时间。你发送了一个相对的:“明天的时间减去当前的时间”。这基本上转换为从现在到午夜之间剩余的秒数,然后将其解释为1970年1月1日的日期。您根本不需要减去time()

echo date('r', mktime(24,0,0)), ' ',  date('r');
                             ^--note: no subtraction
Tue, 28 Jan 2014 00:00:00 -0600 Mon, 27 Jan 2014 13:30:33 -0600

噗,你有“明天午夜”,v。今天的当前日期/时间。所以:

setcookie(..., mktime(24,0,0));