2011-05-18 56 views
3

今天,2011年5月18日 如果我做的setcookie +的strtotime(「明天」)給出錯誤的日期

echo date("H:i m/d/Y", strtotime("tomorrow")); 

我得到00:00 2011年5月19日所應當的,但如果我使用在這樣的setcookie相同的功能:

setcookie("wls_yesterday_review", 'completed', strtotime('tomorrow'),'/','myhost.com'); 

我的cookie將在下午9點

IM在2011年5月18日到期不知道什麼即時通訊做錯了,但我測試了不同的方式和不同的時間,我總是得到相同的結果

我想在第二天的00:00過期。如果今天是05/18 10:00我希望它在05/19 00:00

謝謝你們

+0

時間戳是UTC。你如何檢查cookie過期時間?你的本地時區是UTC-3嗎? – squirrel 2011-05-31 15:40:14

+0

我檢查了一個插件的鉻或Firefox不能記得現在。是的im utc -3。我結束了對這個問題使用javascript – chifliiiii 2011-09-07 21:03:11

回答

1

的strtotime()函數成功返回時間戳到期,但您需要在setcookie()函數中使用一個數值,也許是一個整數。您應該計算秒到今天結束,並把它添加到time()+3600*24

(time()+3600*24)+(mktime(24,0,0)-time()); 

其中mktime(24,0,0)-time()是秒到一天結束的數量。

setcookie("TestCookie", $value, (time()+3600*24)+(mktime(24,0,0)-time())); 

希望這會有所幫助。

+0

我瞭解您的功能,但我仍然會收到到期日:2011年5月19日,星期四9:00:11 PM – chifliiiii 2011-05-18 14:13:12

3
setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */ 
setcookie("TestCookie", $value, time()+3600*24); /* expire in 1 day */ 

http://php.net/manual/en/function.setcookie.php

+0

這並不能解釋問題中提到的值的差異。 – 2011-05-18 13:29:18

+0

我知道,但我想在第二天的00:00過期。如果今天是05/18上午10:00,我希望它在05/19 00:00到期 – chifliiiii 2011-05-18 13:37:34

相關問題