私はクッキーを設定する関数を使用しています。この関数は、クッキー名、クッキー値、およびクッキーの追加有効期限を渡すことができます。クッキーの設定時に有効期限を指定するときに使用できる日付形式はどれですか?
機能:
function setCookie(name, value, exdate) {
var c_value = escape(value) + ((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate);
document.cookie = name + "=" + c_value;
};
を使用:
setCookie("my-cookie-name","my-value","Sun, 15 Jul 2012 00:00:01 GMT");
私は上記の日付形式と機能を使用している場合、私がテストしてきたように、それはクロスブラウザの互換性であると考えていますさまざまなブラウザを閉じてから再び開くと、Cookieが残ります。私は"15 Jul 2012"
のようなフォーマットを使用するときに問題があることを発見しました。このフォーマットはfirefoxでの開発中に私のために働いていましたが、他のブラウザはそのクッキーをセッションクッキーとして設定したようでした。
「Sun、2012年7月15日00:00:01 GMT」、または主要なブラウザ(IE 7-X)で動作する有効期限に使用できる他のフォーマットがありますか? 9、Firefox、Chrome、Opera、Safari)
EDIT/UPDATE:
クッキー(下記答える参照)UTC/GMT形式にあると有効期限が必要です。
corect形式ではない渡された日付を変換するために、次のように私の関数を編集しました。
function setCookie(name, value, exdate) {
//If exdate exists then pass it as a new Date and convert to UTC format
(exdate) && (exdate = new Date(exdate).toUTCString());
var c_value = escape(value) + ((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate);
document.cookie = name + "=" + c_value;
};