3

今天 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:00 使 cookie 过期。如果今天是 05/18 10:00am 我希望它在 05/19 00:00 到期

多谢你们

4

2 回答 2

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

于 2011-05-18T13:26:05.137 回答
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()));

希望这可以帮助。

于 2011-05-18T13:55:50.790 回答