2011-01-07 19 views
8

lo hice:¿Cómo caducar una cookie usando Jquery a la medianoche?

$.cookie("ultOS", (i), {expires:1}); 

Pero sólo expirará día siguiente.

¿Cómo puedo caducar una cookie a medianoche?

¿Funcionaría esto en su lugar?

var date = new Date(); 
var midnight = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59); 
$.cookie("ultOS", (i), {expires: midnight}); 
+0

esto es muy inteligente! Iba a usar date.getDate() + 1 tal como se respondió a continuación, pero estaba preocupado porque finaliza el mes. ¡Tu medianoche es la medianoche perfecta! –

Respuesta

9

creo que esto funcionaría:

var currentDate = new Date(); 
expirationDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()+1, 0, 0, 0); 
$.cookie("ultOS", "5", {expires: expirationDate}); 
+0

Estaba editando la pregunta cuando contestó. Thks – Thiago

3

De acuerdo con la última versión del plugin de THS cookie (suponiendo que esto es el que usted está usando: http://plugins.jquery.com/project/Cookie), se puede pasar un objeto Date normales en

Yo no lo he probado,. pero la fuente del plugin es bastante sencillo ....

if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { 
      var date; 
      if (typeof options.expires == 'number') { 
       date = new Date(); 
       date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); 
      } else { 
       date = options.expires; 
      } 
      expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE 
     } 

Si se pasa en un número, se asume que es el número de días. Si pasas una Fecha, se necesita eso.

0

Se puede crear un objeto Date de JavaScript con el valor de esta noche (medianoche), a continuación, establecer la expiración de la siguiente manera:

$.cookie("example", "foo", { expires: date }); 

Cuando la fecha es el objeto de fecha.

1
var date = new Date(); 
var midnight = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59); 
var expires = "expires="+midnight.toGMTString(); 
Cuestiones relacionadas