2012-06-25 128 views
2

奇怪的問題我寫這篇文章的代碼:有關日期和餅乾

var Ec = new Date(); 
Ec.setTime(Ec.getTime() + (365 * 24 * 3600 * 1000)); 
var Ed = new Date(); 
Ed.setTime(Ed.getTime() + (24 * 3600 * 1000)); 
document.cookie="visit=" + Ed.toGMTString() + ";expires=" + Ec.toGMTString(); 

var Ea = new Date(); 
Ea.setTime(Ea.getTime() + (24 * 3600 * 1000)); 
alert(Ea.toGMTString()); 

在cookie都存儲在此:

06/26/2012 8:46 AM

,並在警報它顯示此:

06/26/2012 12:46 AM

而我國目前的時間是:

06/25/2012 14:46 

爲什麼? 我想簡單地在cookie中存儲當前時間+ 24小時。

回答

1

我假設你不在GMT時區。

當您執行Ed.toGMTString()時,您將時間轉換爲GMT,這就是它與當地時間不同的原因。

Ed.toLocaleTimeString()Ed.toISOString()可能更接近標記。

+0

那麼,如何從時區獨立存儲當前時間+ 24小時的Cookie? – xRobot

+0

到期完成瀏覽器端。存儲Cookie時不要轉換爲GMT。留在當地時區。 – Dancrumb

+0

我剛剛使用過你的函數而沒有toGTMString,但是我得到了同樣的問題:( – xRobot