我正在阅读清除饼干的内容。假设一个 cookie 设置了 setcookie("abc", "xyz", time()+3600)
,那么从我读到的内容来看,您可以使用将 cookie 设置为过去过期的setcookie("abc", "xyz", time()-3600)
取消设置它。我看到的所有示例都使用这种格式。
我的问题是为什么最后一个参数必须是特定的 time()-3600,例如为什么它不能是 time()-1 或 time()-9999999?
它不必是time() - 3600
.这仅用于示例,因为它在"一小时前"非常整洁。 它必须是过去的某个时间,所以time()-1
或time()-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
时,这意味着您将值加或减为秒,