Riverworks Logo

Time Lapse Code Display

JavaScriptCode Snippets

How to display a popup once a day or once a week using JavaScript. (See Theatre Centre for application)

<script>
	let dateLastShown = localStorage.getItem("dateLastShownLive");

        if (dateLastShown) {
		dateLastShown = new Date(dateLastShown);
        }
            
        let todaysDate = new Date();

        // simulate todays date to test =)
        //todaysDate = new Date("June 4 2023");

        // console.log(nWeeks(dateLastShownOld ?? todaysDate, todaysDate));

        if (!dateLastShown || nWeeks(dateLastShown ?? todaysDate, todaysDate) >= 1) {
		// wait 5 secs and handle showing popup, then run code below:
                const donatePopup = document.getElementById('donate-popup');
                window.addEventListener('load', () => {
                    setTimeout(() => {
                        donatePopup.classList.add('popup-active');
                        localStorage.setItem("dateLastShownLive", todaysDate);
                    },5000);
                });

                const popupClose = document.getElementById('donate-popup-close');
                popupClose.addEventListener('click', () => {
                    donatePopup.classList.remove('popup-active');
                });
        } 

	function nWeeks(date1, date2) {
        	var WEEK = 1000 * 60 * 60 * 24 * 7;

                var date1ms = date1.getTime();
                var date2ms = date2.getTime();

                var diff = Math.abs(date2ms - date1ms);

                return Math.floor(diff / WEEK);
	}
</script>