有効期限が切れないCookieを設定したいと思います。それも可能でしょうか?
document.cookie = "name=value; expires=date; path=path;domain=domain; secure";
日付を本当に大きくしたくありません。Cookieのexpiresパラメータの値が、決して期限切れにならないことを通知しているのかどうか疑問に思っています。
ありがとう。
いや。できません。それを行う「方法」は、有効期限を2030年のようにすることです。
あなたが望むものに構文はありません。有効期限を設定しないと、セッションの終了時にCookieが期限切れになります。唯一のオプションは、任意の大きな値を選択することです。一部のブラウザでは、2038年を超える日付に問題があることに注意してください(UNIXエポック時間が32ビット整数を超える場合)。
Mozilla docs の例として実行できます。
document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT";
P.S
もちろん、人類が10000年の最初の分にあなたのコードをまだ使用している場合は問題があります:)
すべてのCookieはCookieに従って期限切れになります 仕様 、設定できる最大値は
2^31 - 1 = 2147483647 = 2038-01-19 04:14:07
したがって、最大Cookieの有効期間は
$.cookie('subscripted_24', true, { expires: 2147483647 });
1か月または何かの有効期限にCookieを設定し、ユーザーがWebサイトに再度アクセスするたびにCookieを再割り当てできます。
有効期限を設定しない場合、Cookieはユーザーのセッションの終了時に期限切れになります。 UNIXエポック時間が延長される直前の日付を使用して32ビット整数を渡すことをお勧めします。それをCookieに入れるには、randomCookie
が設定するCookieであり、true
がそれぞれの値であると仮定して、document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;
を使用します。
あなたはちょうどできない。永久Cookieを設定するために使用する正確なコードはありませんが、current time + 10 years
のような古いトリックでできます。
January 2038
を超える日付は、Cookie(32-bit int)によって運命づけられることに注意してください。それが近い将来に修正されるという奇跡を願っています。 64-bit intの場合、2110
前後の年は安全です。時間が経つにつれて、ソフトウェアとハードウェアは変化し、古いもの(現在のもの)には決して適応しない可能性があるため、nowを準備して未来に向けて。
2038年問題 を参照
クライアント側からのみデータを読み取る場合は、ローカルストレージを使用できます。ブラウザのキャッシュがクリアされたときにのみ削除されます。
次のように、現在の年より1つ多い日付に設定することにより、Cookieを終了しないようにすることができます。
var d = new Date();
document.cookie = "username=John Doe; expires=Thu, 18 Dec " + (d.getFullYear() + 1) + " 12:00:00 UTC";