2013-05-18 30 views
5

我創建我的網站時,我創建了一個新的cookie將這個PHP行:谷歌瀏覽器的cookie最大到期日

setcookie('subscribed', 'true', time() + 365*24*3600*100, '/', null, false, true); 

,我意識到我的瀏覽器(谷歌瀏覽器)拒絕讓該cookie。當我在谷歌瀏覽器中查看我的cookies時,它不在那裏。我開始與不同的設置擺弄直到我看到這個工作:

setcookie('subscribed', 'true', time() + 365*24*360, '/', null, false, true); 

這意味着改變到期時間爲較低的值沒有工作爲使這項工作的一種手段。

我的問題是,您可以在谷歌瀏覽器中設置cookie的最低到期時間是多少?有誰知道這個政策?

+5

'time()+ 365 * 24 * 3600 * 100'將超過32位系統整數的最大值。 –

+0

那麼32位系統的最大限制是多少? – Farid

+1

@法國2,147,483,647。一個有符號的32位整數的最大值。 – likeitlikeit

回答

8

我剛剛嘗試過在Chrome瀏覽器和Apache作爲服務器的64位操作系統上,它的工作原理完美無瑕。它顯示了cookie的到期時間是在今年的某個地方2113

開發無效居民可能是正確的:任何日期超過3時14分07秒UTC上Tuesday, 19 January 2038將返回到一定的時間接近1900,從而迫使cookie立即消失(在32位平臺上)。

通過將cookie過期時間設置爲未來不超過10年來解決此問題。無論如何,這已經超出了任何電子設備的合理預期壽命。

+0

是的,我在一個32位系統,是的,設定時間到10年確實工作。非常感謝! – Farid