我正在寻找一种方法来针对所有浏览器设置持续时间较短的Cookie。显然,每个浏览器都以不同的方式处理PHP setcookie方法。以下是我的结果。
PHP代码:
setcookie("TestCookie", $value, time()+7200, "/", ".domain.com", 1, true);
结果:
OPERA 11.10
Local time of test: 1316621628
PHP Server Time: Wed Sep 21 07:58:35 PDT 2011
Cookie Expiration Time: 2011-09-21 - 20:58:35
Chrome 6.0.472.63
Local time of test - 1316621761
PHP Server Time - Wed Sep 21 08:01:21 PDT 2011
Cookie Expiration Time - Wednesday, September 21, 2011 9:01:21 PM
Firefox 4
Local time of test: 1316622064
PHP Server Time: Wed Sep 21 08:07:38 PDT 2011
CookieExpiration Time: Wednesday, September 21, 2011 10:22:50 PM
Safari 3.2.3
Local time of test: 1316622359
PHP Server Time: Wed Sep 21 08:10:48 PDT 2011
CookieExpiration Time: 9/21/11 5:10 PM
Internet Explorer 8
Local time of test: 1316623009
PHP Server Time: Wed Sep 21 08:21:37 PDT 2011
Cookie Data:
TestCookie
x
domain.com/
9728
3932016640
30177410
2837190416
30177404
正如您所看到的,Cookie的到期日期/时间差异很大,从预期工作到过去几个小时到仅1小时!非常令人沮丧。
除了尝试上述方法之外,我还尝试通过unixtime设置确切的到期日期/时间...我已经在PHP级别的time()或使用浏览器的unixtime通过JavaScript的。
setcookie("TestCookie", $value, 1316621928, "/", ".domain.com", 1, true);
每个浏览器也会以不同方式处理此问题。我似乎无法找到一种适用于所有浏览器的方法。有人知道一种方法可以实现这个吗?
谢谢。