kontakt: [email protected]
Widżet:Countdown: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
imported>Sługa szatana Utworzono nową stronę "<includeonly><span id="<!--{$id|escape:'html'|default:'countdown'}-->"></span><script type="text/javascript"> let until = new Date(<!--{$until|escape:'javascript'|de..." |
mNie podano opisu zmian |
||
(Nie pokazano 16 wersji utworzonych przez 2 użytkowników) | |||
Linia 1: | Linia 1: | ||
<includeonly><span id="<!--{$id|escape:'html'|default:'countdown'}-->"></span><script type="text/javascript"> | <includeonly><span id="<!--{$id|escape:'html'|default:'countdown'}-->"></span><script type="text/javascript" async> | ||
let until = new Date(<!--{$until|escape:'javascript'|default:''}-->); | (() => { | ||
let until = new Date(<!--{$until|validate:int|escape:'javascript'|default:''}-->); | |||
let offset = until.getTimezoneOffset(); | |||
let plural = (value, a, b, c, lang) => { | let plural = (value, a, b, c, lang) => { | ||
return {"one": a, "other": b, "few": b, "many": c}[new Intl.PluralRules(lang).select(value)]; | return {"one": a, "other": b, "few": b, "many": c}[new Intl.PluralRules(lang).select(value)]; | ||
Linia 7: | Linia 9: | ||
let update = () => { | let update = () => { | ||
let date = new Date(); | let date = new Date(); | ||
let diff = (until - date) / 1000; | let current_offset = (date.getTimezoneOffset() - until.getTimezoneOffset()) * 60000; | ||
let diff = (new Date(until.getTime() + current_offset) - date) / 1000; | |||
let ago = diff < 0; | |||
diff = Math.abs(diff); | |||
let dni = Math.floor(diff / 86400); | let dni = Math.floor(diff / 86400); | ||
let godziny = Math.floor(diff % 86400 / 3600); | let godziny = Math.floor(diff % 86400 / 3600); | ||
Linia 15: | Linia 20: | ||
let span = document.getElementById("<!--{$id|escape:'javascript'|default:'countdown'}-->"); | let span = document.getElementById("<!--{$id|escape:'javascript'|default:'countdown'}-->"); | ||
let texts = []; | let texts = []; | ||
if (dni | if (dni != 0) | ||
<!--{if !isset($ago)}--> | |||
texts.push(dni + " " + plural(dni, "dzień", "dni", "dni", "pl-pl")); | texts.push(dni + " " + plural(dni, "dzień", "dni", "dni", "pl-pl")); | ||
if (godziny | <!--{else}--> | ||
texts.push(dni + " " + plural(dni, "dzień", "dni", "dni", "pl-pl")); | |||
<!--{/if}--> | |||
if (godziny != 0) | |||
<!--{if !isset($ago)}--> | |||
texts.push(godziny + " " + plural(godziny, "godzina", "godziny", "godzin", "pl-pl")); | texts.push(godziny + " " + plural(godziny, "godzina", "godziny", "godzin", "pl-pl")); | ||
if (minuty | <!--{else}--> | ||
texts.push(godziny + " " + plural(godziny, "godzinę", "godziny", "godzin", "pl-pl")); | |||
<!--{/if}--> | |||
if (minuty != 0) | |||
<!--{if !isset($ago)}--> | |||
texts.push(minuty + " " + plural(minuty, "minuta", "minuty", "minut", "pl-pl")); | texts.push(minuty + " " + plural(minuty, "minuta", "minuty", "minut", "pl-pl")); | ||
if (sekundy | <!--{else}--> | ||
texts.push(minuty + " " + plural(minuty, "minutę", "minuty", "minut", "pl-pl")); | |||
<!--{/if}--> | |||
if (sekundy != 0) | |||
<!--{if !isset($ago)}--> | |||
texts.push(sekundy + " " + plural(sekundy, "sekunda", "sekundy", "sekund", "pl-pl")); | texts.push(sekundy + " " + plural(sekundy, "sekunda", "sekundy", "sekund", "pl-pl")); | ||
span.innerText = texts.join(", "); | <!--{else}--> | ||
texts.push(sekundy + " " + plural(sekundy, "sekundę", "sekundy", "sekund", "pl-pl")); | |||
<!--{/if}--> | |||
<!--{if $ago}--> | |||
if (ago) | |||
texts[texts.length - 1] += " temu"; | |||
<!--{/if}--> | |||
if (span.innerText != texts.join(", ")) { | |||
span.innerText = texts.join(", "); | |||
} | |||
requestAnimationFrame(update); | |||
}; | }; | ||
update | requestAnimationFrame(update); | ||
})(); | |||
</script></includeonly> | </script></includeonly> |