26.04.2020 13:36
1
Ahoj, vedel by mi niekto prosim poradit, ako upravit tento script aby cookies vyprsalo po 30 minutach?
Ide o popup okno ktora sa ma zobrazit a po jeho zavreti by ho rovnaky navstevnik nemal vidiet dalsich 30 minut napriec webom, script funguje ako ma ale neviem prist ako zmenit ten interval, v jq sa vobec neorientujem, dakujem

Kód:
     $('.test-info').delay(6000).fadeIn(900).show(0); 

            if (Boolean(readCookie('hide'))) {
                $('.test-info').hide();
                $('.test-info').fadeOut(1000);
                $('.test-info').addClass("none");
            }
            $('.test-info .close').click(function (e) {

                $('.test-info').fadeOut(700);
                e.stopPropagation();

                createCookie('hide', true, 1)
                return false;
            });

            function createCookie(name, value, days) {
                if (days == 1) {
                    var date = new Date();
                    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                    var expires = "; expires=" + date.toGMTString();
                }
                else var expires2 = "";
                document.cookie = name + "=" + value + "; expires=" + expires + "; path=/";

              //  $.cookie(name, value, { expires: days });
            }

            function readCookie(name) {
                var nameEQ = name + "=";
                var ca = document.cookie.split(';');
                for (var i = 0; i < ca.length; i++) {
                    var c = ca[i];
                    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
                }
                return null;
            }

            function eraseCookie(name) {
                createCookie(name, "", -1);
            }

        });
26.04.2020 14:53
2
Funkce createCookie() bere jako 3. argument days. Dál uvnitř funkce uvidíš, že se hodnota days vynásobí celkem 86 400 000 krát a získáš tak počet milisekund (protože takový počet ms je v jednom dni), které se přičtou k aktuálnímu datu - a to je datum expirace cookie, které se pak přidá do hodnoty document.cookie o 4 řádky níž.

Co potřebuješ udělat, je předávat ne počet dní, ale počet minut, a podle toho upravit i výpočet milisekund.
  1. Změň argument days funkce createCookie() na minutes
  2. V řádku, který obsahuje výpočet (days * 24 * 60 * 60 * 1000) nepočítej s dny, ale s minutami. Tzn. (minutes * 60 * 1000)
  3. Nezapomeň změnit hodnotu argumentu ve volání funkce - původní createCookie('hide', true, 1) by ti teď vygenerovalo cookie jen na 1 minutu.
26.04.2020 15:43
3
Okey dakujem, uz som nakoniec pochopil ako to logicky funguje, dik za objasnenie, pomohlo