更新cookie时保留时间

时间:2011-07-13 15:54:23

标签: php cookies

只是一个简单的问题。有没有简单的方法如何在更新时不改变cookie中的过期时间?

假设我有一个cookie将在24小时后到期。但在同一天,我几次更新cookie。但我仍然希望cookie在24小时后同时到期。

详细示例:

Cookie“counter”将于2011年7月23日10:00到期。现在,由于某些操作一小时后我更新了此cookie的值。如果我将时间设置为24小时,它将于2011年7月23日11:00到期,但我需要到期时间留在23.07.2011 10:00。

有简单的方法吗?我能想到的唯一方法就是拥有另一个存储过期时间的cookie,但我会发誓必须有更简单的方法,只是遗漏了什么?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以将过期日期与Cookie值一起存储,而不是使用其他Cookie:

$expire = time()+$maxage;
setcookie($name, "$expire:$value", $expire);

然后您可以使用explode获取两个数据:

list($expire, $_COOKIE[$name]) = explode(':', $_COOKIE[$name], 2);
setcookie($name, "$expire:$new_value", $expire);

答案 1 :(得分:0)

PHP(和Javascript)无法检索cookie的到期时间。只知道cookie名称/值对。您确实需要将原始到期时间存储在另一个cookie中,或者在原始setcookie()调用时存储在数据库表中。在对该cookie的后续修改中,使用您存储在数据库(或其他cookie)中的到期日期。