skip skip - 5 months ago 18
jQuery Question

how to test if a javascript cookie has expired?

Is it possible to test if a javascript cookie has expired using?

I need to do a few thing conditionally and two of those conditions are overlapping for which if it could be tested whether a cookie has expired then it will be easier for me to get things done.

I am using

jquery-1.5.js
and
jquery.cookies.js
plugin.

Thanks.

CODE

var jq = jQuery.noConflict();
jq(document).ready(function () {

var timeStart, timeSubmit, timeLeft;
timeSubmit = 5 * 60 * 1000;
timeStart = jaaulde.utils.cookies.get("_watchman");
try {
if(jaaulde.utils.cookies.test()) {
throw "err1";
}
else if(hasCookieExpired) {
throw "err2";
}
else if(!timeStart) {
jaaulde.utils.cookies.set("_watchman", String(new Date().getTime()), {path: '/path', expiresAt: new Date((new Date().getTime() + timeSubmit))});
timeLeft = timeSubmit - (new Date().getTime() - Number(jaaulde.utils.cookies.get("_watchman")));
timeCheck();
}
else {
timeLeft = timeSubmit - (new Date().getTime() - Number(jaaulde.utils.cookies.get("_tts")));

timeCheck();
}

} catch(err) {
//handle errors
}

function timeCheck() {
if(timeLeft <= 0) {
triggerSubmit();
}
else {
setTimeout(triggerSubmit, timeLeft);
setInterval(showTimeLeft, 1000);
}
}

function triggerSubmit() {
//submit it
}

function showTimeLeft() {
//do something
}

});

Answer
if( $.cookie('yourCookie') === null ) {  // if expired / non-existent
    //DO SOMETHING
} else {
    // DO SOMETHING ELSE
}

Or like this using Ternary operator:

checkCookie = $.cookie('yourCookie') === null ? ( /*IF TRUE...*/ ) : ( /*IF FALSE...*/ );

If you plan to do the opposite (see if it's still existent):

if( !($.cookie('yourCookie') === null) ) {  // if NOT expired / still existent
    //DO SOMETHING
} else {
    // DO SOMETHING ELSE
}