Ik ben enige tijd aan het rommelen geweest met Cookies om om bepaalde acties uit te voeren. Er waren echter een aantal mensen die me vertelde dat ik beter localdStorage voor mijn project kon gebruiken. Zo gezegd zo gedaan. Ik heb echter een probleem met het berekenen van een tijdsverschil Dit is wat ik heb zover:

var now = Date.now();
var date = new Date();
date.setTime(date.getTime() + (60 * 1000));// slechts een minuut om te testen

if (localStorage.getItem("mailinglist_popup") === null) {
    $('#newsletterModal').modal('show')
    localStorage.setItem("mailinglist_popup", now );// hier gebruik ik var now voor de waarde
} else if (localStorage.getItem("mailinglist_popup") !== null && now - localStorage.getItem('mailinglist_popup') > date) {
    $('#newsletterModal').modal('show')
}

..en met de else if heb ik dus een probleem. Als item mailinglist_popup (!== null) wel bestaat maar er is een bepaalde tijd verstreken (1 minuut in het voorbeeld in het echt 3 maanden) toon het modal dan weer. Maar die tweede conditie werkt dus niet. Math en datums is nooit mijn sterkste kant geweest. Ziet iemand wat ik fout doe? Of hoe ik dit werkend kan krijgen.

Alvast bedankt
Zonder het te testen zou ik eens proberen met haakjes rond now - localStorage.getItem('mailinglist_popup')
volgens mij vergelijk de browser eerst localStorage.getItem('mailinglist_popup') en daarna wordt dit resultaat verminderd op now

Jan
@Jan R. Bedank voor je reactie. Ik heb het voor elkaar en wel op de volgende wijze, voor een ieder die zoiets wellicht ook in de toekomst nodig heeft:

var mailinglistPopup  = localStorage.getItem('mailinglist_popup'); 
var now = Date.now();
var threeMonths = 1000 * 60 * 2; // 2 minuten om te testen
//var threeMonths = 1000 * 60 * 60 * 24 * 90
if (mailinglistPopup === null) {
	$('#myModall').modal('show')
	localStorage.setItem("mailinglist_popup", threeMonths);
} else if (mailinglistPopup !== null && now - mailinglistPopup > threeMonths) {
	$('#myModall').modal('show')	
}
Na .modal('show') hoort waarschijnlijk een puntkomma (x2).
@Thomas van den Heuvel. Dat was me inderdaad opgevallen. Bedankt voor je opmerkzaamheid.

Reageren