Welche Datumsformate kann ich zum Festlegen des Ablaufdatums beim Setzen eines Cookies verwenden?

Ich benutze eine Funktion, die ein Cookie setzt. Mit dieser Funktion können der Cookie-Name, der Cookie-Wert und ein zusätzliches Ablaufdatum des Cookies übergeben werden.

die Funktion:

function setCookie(name, value, exdate) {
    var c_value = escape(value) + ((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate);
    document.cookie = name + "=" + c_value;
};

Verwendungszweck:

setCookie("my-cookie-name","my-value","Sun, 15 Jul 2012 00:00:01 GMT");

Ich habe die Funktion mit dem obigen Datumsformat verwendet und bin der Meinung, dass sie browserübergreifend kompatibel ist, da ich getestet habe, ob der Cookie nach dem Schließen verschiedener Browser und dem erneuten Öffnen erhalten bleibt. Ich entdeckte, dass es Probleme gab, wenn ein Format wie verwendet wurde"15 Jul 2012". Dieses Format funktionierte für mich während der Entwicklung in Firefox, aber andere Browser schienen das Cookie nur als Sitzungscookie festzulegen.

Sollte ich mich nur an dieses Format halten: "Sun, 15 Jul 2012 00:00:01 GMT" oder gibt es andere Formate, die ich für das Ablaufdatum verwenden könnte und die für die gängigen Browser (IE 7-9, Firefox, Chrome) geeignet sind? , Oper, Safari)?

EDIT / UPDATE:

Für Cookies muss das Ablaufdatum angegeben werdenUTC / GMT-Format (siehe Antwort unten).

Ich habe meine Funktion folgendermaßen bearbeitet, um alle übergebenen Daten zu konvertieren, die nicht im richtigen Format vorliegen.

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;
    };

Antworten auf die Frage(3)

Ihre Antwort auf die Frage