setcookie + strtotime('明天')给出错误的日期

时间:2011-05-18 13:20:11

标签: php strtotime setcookie

今天05/18/2011 如果我做

echo date("H:i m/d/Y", strtotime("tomorrow"));

我得到00:00 05/19/2011应该是,但如果我在setcookie中使用相同的功能,如:

setcookie("wls_yesterday_review", 'completed', strtotime('tomorrow'),'/','myhost.com');

我的Cookie将于2011年5月18日晚上9点到期

我不确定我做错了什么,但我测试了不同的方式和不同的时间,我总是得到相同的结果

我想在第二天00:00过期cookie。如果今天是05/18上午10:00,我希望它在05/19 00:00到期

谢谢你们

2 个答案:

答案 0 :(得分:3)

setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600*24);  /* expire in 1 day */

http://php.net/manual/en/function.setcookie.php

答案 1 :(得分:1)

strtotime()函数在成功时返回时间戳,但在setcookie()函数中需要一个数值,可能是一个整数。您应该计算到今天结束的秒数并将其添加到time()+3600*24

(time()+3600*24)+(mktime(24,0,0)-time());

其中mktime(24,0,0)-time()是到达当天结束的秒数。

setcookie("TestCookie", $value, (time()+3600*24)+(mktime(24,0,0)-time()));

希望这有帮助。