<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nbittrpgwiki.pynappo.xyz/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACountdown.js</id>
	<title>MediaWiki:Countdown.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nbittrpgwiki.pynappo.xyz/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACountdown.js"/>
	<link rel="alternate" type="text/html" href="https://nbittrpgwiki.pynappo.xyz/index.php?title=MediaWiki:Countdown.js&amp;action=history"/>
	<updated>2026-09-29T03:47:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://nbittrpgwiki.pynappo.xyz/index.php?title=MediaWiki:Countdown.js&amp;diff=3131&amp;oldid=prev</id>
		<title>CStatic: Created page with &quot;$(function () {     var daysMap = {         &#039;sunday&#039;: 0, &#039;sun&#039;: 0,         &#039;monday&#039;: 1, &#039;mon&#039;: 1,         &#039;tuesday&#039;: 2, &#039;tue&#039;: 2,         &#039;wednesday&#039;: 3, &#039;wed&#039;: 3,         &#039;thursday&#039;: 4, &#039;thu&#039;: 4,         &#039;friday&#039;: 5, &#039;fri&#039;: 5,         &#039;saturday&#039;: 6, &#039;sat&#039;: 6     };      $(&#039;.countdown&#039;).each(function () {         var $container = $(this);         var timeStr = $container.attr(&#039;data-time&#039;).trim();         var dayStr = ($container.attr(&#039;data-day&#039;) || &#039;&#039;).trim().toLowerCase...&quot;</title>
		<link rel="alternate" type="text/html" href="https://nbittrpgwiki.pynappo.xyz/index.php?title=MediaWiki:Countdown.js&amp;diff=3131&amp;oldid=prev"/>
		<updated>2026-09-28T07:05:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;$(function () {     var daysMap = {         &amp;#039;sunday&amp;#039;: 0, &amp;#039;sun&amp;#039;: 0,         &amp;#039;monday&amp;#039;: 1, &amp;#039;mon&amp;#039;: 1,         &amp;#039;tuesday&amp;#039;: 2, &amp;#039;tue&amp;#039;: 2,         &amp;#039;wednesday&amp;#039;: 3, &amp;#039;wed&amp;#039;: 3,         &amp;#039;thursday&amp;#039;: 4, &amp;#039;thu&amp;#039;: 4,         &amp;#039;friday&amp;#039;: 5, &amp;#039;fri&amp;#039;: 5,         &amp;#039;saturday&amp;#039;: 6, &amp;#039;sat&amp;#039;: 6     };      $(&amp;#039;.countdown&amp;#039;).each(function () {         var $container = $(this);         var timeStr = $container.attr(&amp;#039;data-time&amp;#039;).trim();         var dayStr = ($container.attr(&amp;#039;data-day&amp;#039;) || &amp;#039;&amp;#039;).trim().toLowerCase...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;$(function () {&lt;br /&gt;
    var daysMap = {&lt;br /&gt;
        &amp;#039;sunday&amp;#039;: 0, &amp;#039;sun&amp;#039;: 0,&lt;br /&gt;
        &amp;#039;monday&amp;#039;: 1, &amp;#039;mon&amp;#039;: 1,&lt;br /&gt;
        &amp;#039;tuesday&amp;#039;: 2, &amp;#039;tue&amp;#039;: 2,&lt;br /&gt;
        &amp;#039;wednesday&amp;#039;: 3, &amp;#039;wed&amp;#039;: 3,&lt;br /&gt;
        &amp;#039;thursday&amp;#039;: 4, &amp;#039;thu&amp;#039;: 4,&lt;br /&gt;
        &amp;#039;friday&amp;#039;: 5, &amp;#039;fri&amp;#039;: 5,&lt;br /&gt;
        &amp;#039;saturday&amp;#039;: 6, &amp;#039;sat&amp;#039;: 6&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    $(&amp;#039;.countdown&amp;#039;).each(function () {&lt;br /&gt;
        var $container = $(this);&lt;br /&gt;
        var timeStr = $container.attr(&amp;#039;data-time&amp;#039;).trim();&lt;br /&gt;
        var dayStr = ($container.attr(&amp;#039;data-day&amp;#039;) || &amp;#039;&amp;#039;).trim().toLowerCase();&lt;br /&gt;
        var $textSpan = $container.find(&amp;#039;.countdown-text&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
        var parts = timeStr.split(&amp;#039;:&amp;#039;);&lt;br /&gt;
        var targetHour = parseInt(parts[0], 10) || 0;&lt;br /&gt;
        var targetMinute = parseInt(parts[1], 10) || 0;&lt;br /&gt;
        var targetSecond = parseInt(parts[2], 10) || 0;&lt;br /&gt;
&lt;br /&gt;
        var targetDay = daysMap.hasOwnProperty(dayStr) ? daysMap[dayStr] : null;&lt;br /&gt;
&lt;br /&gt;
        function updateCountdown() {&lt;br /&gt;
            var now = new Date();&lt;br /&gt;
            &lt;br /&gt;
            // Construct base target date for TODAY in UTC&lt;br /&gt;
            var target = new Date(Date.UTC(&lt;br /&gt;
                now.getUTCFullYear(),&lt;br /&gt;
                now.getUTCMonth(),&lt;br /&gt;
                now.getUTCDate(),&lt;br /&gt;
                targetHour,&lt;br /&gt;
                targetMinute,&lt;br /&gt;
                targetSecond&lt;br /&gt;
            ));&lt;br /&gt;
&lt;br /&gt;
            if (targetDay !== null) {&lt;br /&gt;
                // Weekly mode&lt;br /&gt;
                var currentUTCDay = now.getUTCDay();&lt;br /&gt;
                var daysUntil = (targetDay - currentUTCDay + 7) % 7;&lt;br /&gt;
&lt;br /&gt;
                // If target day is today but time has passed, jump to next week&lt;br /&gt;
                if (daysUntil === 0 &amp;amp;&amp;amp; now.getTime() &amp;gt;= target.getTime()) {&lt;br /&gt;
                    daysUntil = 7;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                target.setUTCDate(target.getUTCDate() + daysUntil);&lt;br /&gt;
            } else {&lt;br /&gt;
                // Daily mode: if target time today has passed, roll to tomorrow&lt;br /&gt;
                if (now.getTime() &amp;gt;= target.getTime()) {&lt;br /&gt;
                    target.setUTCDate(target.getUTCDate() + 1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            var distance = target.getTime() - now.getTime();&lt;br /&gt;
&lt;br /&gt;
            var days = Math.floor(distance / (1000 * 60 * 60 * 24));&lt;br /&gt;
            var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));&lt;br /&gt;
            var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));&lt;br /&gt;
            var seconds = Math.floor((distance % (1000 * 60)) / 1000);&lt;br /&gt;
&lt;br /&gt;
            var hStr = hours &amp;lt; 10 ? &amp;#039;0&amp;#039; + hours : hours;&lt;br /&gt;
            var mStr = minutes &amp;lt; 10 ? &amp;#039;0&amp;#039; + minutes : minutes;&lt;br /&gt;
            var sStr = seconds &amp;lt; 10 ? &amp;#039;0&amp;#039; + seconds : seconds;&lt;br /&gt;
&lt;br /&gt;
            var timerDisplay = &amp;#039;&amp;#039;;&lt;br /&gt;
            if (days &amp;gt; 0) {&lt;br /&gt;
                timerDisplay += days + &amp;#039;d &amp;#039;;&lt;br /&gt;
            }&lt;br /&gt;
            timerDisplay += hStr + &amp;#039;h &amp;#039; + mStr + &amp;#039;m &amp;#039; + sStr + &amp;#039;s&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
            $textSpan.text(timerDisplay);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        updateCountdown();&lt;br /&gt;
        setInterval(updateCountdown, 1000);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>CStatic</name></author>
	</entry>
</feed>