2

我正在阅读有关清除 cookie 的内容。假设一个 cookie 设置为setcookie("abc", "xyz", time()+3600),然后从我读到的内容中,您可以通过使用setcookie("abc", "xyz", time()-3600)which 将 cookie 设置为过去过期来取消它。我见过的所有示例都使用这种格式。

我的问题是为什么最后一个参数必须特别是 time()-3600,为什么不能是 time()-1 或 time()-9999999?

4

5 回答 5

3

我的问题是为什么最后一个参数必须特别是 time()-3600,为什么不能是 time()-1 或 time()-9999999?

它没有。3600 可以,但过去的任何东西也可以。

于 2012-05-28T13:27:22.410 回答
3

它不必是time() - 3600。这仅在示例中使用,因为它使“一小时前”变得很整洁。它必须是过去的某个时间,所以 time()-1或者time()-9999999也可以接受,任何价值都是如此< time()

于 2012-05-28T13:27:36.727 回答
1

诀窍在于setcookie("abc", "xyz", time()-3600),这引用了服务器上的时间,而 cookie 的过期时间取决于运行浏览器的主机的时间。如果两个主机之间的时间不匹配,则 cookie 可能不会过期。但是,使用时间“1”表示到期时间为 1970 年 1 月 1 日午夜之后的 1 秒,这是可能的最早到期时间。

于 2012-05-28T13:30:36.123 回答
0

当浏览器读取过去的时间时,它会被删除

于 2012-05-28T13:28:14.980 回答
-1

time()返回自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来以秒数测量的当前时间。

所以当你这样做时,这time() + or - somedigit意味着你正在增加或减少秒的价值,

于 2012-05-28T13:29:53.043 回答