Estoy usando una función que establece una cookie. Esta función permite ingresar el nombre de la cookie, el valor de la cookie y una fecha de vencimiento adicional de la cookie.¿Qué formatos de fecha puedo usar al especificar la fecha de caducidad al configurar una cookie?
la función:
function setCookie(name, value, exdate) {
var c_value = escape(value) + ((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate);
document.cookie = name + "=" + c_value;
};
uso:
setCookie("my-cookie-name","my-value","Sun, 15 Jul 2012 00:00:01 GMT");
he utilizado la función con el formato de fecha anterior y creo que es compatible con navegadores como he probado si el la cookie permanece después de cerrar varios navegadores y volver a abrirlos. Descubrí que había problemas al usar un formato como "15 Jul 2012"
. Este formato funcionó para mí durante el desarrollo en Firefox, pero otros navegadores solo parecían configurar la cookie como una cookie de sesión.
Debo seguir usando este formato: "dom, 15 jul 2012 00:00:01 GMT" o hay otros formatos que podría utilizar para la fecha de caducidad que funcionará en los principales navegadores (IE 7- 9, Firefox, Chrome, Opera, Safari)?
EDIT/UPDATE:
Galletas requiere la fecha de caducidad que estar en formato UTC/GMT (véase la respuesta más abajo).
He editado mi función a lo siguiente para convertir las fechas pasadas que no están en el 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;
};