清除饼干,为什么需要特定的值


Clearing cookies, why is specific value required?

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

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

它不必是time() - 3600 .这仅用于示例,因为它在"一小时前"非常整洁。 它必须是过去的某个时间,所以time()-1time()-9999999也是可以接受的,任何价值< time()也是如此。

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

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

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

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

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

因此,当您执行此操作time() + or - somedigit时,这意味着您将值加或减为秒,