Sto usando una funzione che imposta un cookie. Questa funzione consente di passare il nome del cookie, il valore del cookie e una data di scadenza aggiuntiva del cookie.Quali formati di data posso usare quando si specifica la data di scadenza quando si imposta un cookie?
la funzione:
function setCookie(name, value, exdate) {
var c_value = escape(value) + ((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate);
document.cookie = name + "=" + c_value;
};
utilizzo:
setCookie("my-cookie-name","my-value","Sun, 15 Jul 2012 00:00:01 GMT");
Ho usato la funzione con il formato della data di cui sopra e credere che sia compatibile con cross browser come ho testato se il il cookie rimane dopo aver chiuso vari browser e riaprirli. Ho scoperto che c'erano problemi nell'uso di un formato come "15 Jul 2012"
. Questo formato ha funzionato per me durante lo sviluppo di Firefox, ma solo altri browser sembravano impostare il cookie come cookie di sessione.
Devo utilizzare solo questo formato: "Dom, 15 Jul 2012 00:00:01 GMT" o ci sono altri formati che potrei usare per la data di scadenza che funzionerà sui principali browser (IE 7- 9, Firefox, Chrome, Opera, Safari)?
EDIT/UPDATE:
cookie richiede la data di scadenza per essere in UTC/GMT Format (vedi risposta qui sotto).
Ho modificato la mia funzione di seguito per convertire le date passate in non nel formato 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;
};