<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://gw1wiki.tramitetyria.it/index.php?action=history&amp;feed=atom&amp;title=Widget%3AEvent_countdown</id>
	<title>Widget:Event countdown - Cronologia</title>
	<link rel="self" type="application/atom+xml" href="https://gw1wiki.tramitetyria.it/index.php?action=history&amp;feed=atom&amp;title=Widget%3AEvent_countdown"/>
	<link rel="alternate" type="text/html" href="https://gw1wiki.tramitetyria.it/index.php?title=Widget:Event_countdown&amp;action=history"/>
	<updated>2026-04-24T22:02:42Z</updated>
	<subtitle>Cronologia della pagina su questo sito</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://gw1wiki.tramitetyria.it/index.php?title=Widget:Event_countdown&amp;diff=3054&amp;oldid=prev</id>
		<title>MusPuiDiTe: Creata pagina con &quot;&lt;noinclude&gt;{{TOCright}} == Descrizione == Questo widget visualizza il tempo rimanente per l'evento corrente, o il tempo per l'inizio del prossimo evento. Questo widget va usato tramite il suo template-involucro {{tl|Event countdown widget}} per tracciarne gli usi.  Il template involucro va utilizzato in combinazione con {{tl|Event countdown}}, in quanto il widget da solo non produce nulla, modifica solo gli elementi inseriti dall'altro template.  == Utilizzo == === Param...&quot;</title>
		<link rel="alternate" type="text/html" href="https://gw1wiki.tramitetyria.it/index.php?title=Widget:Event_countdown&amp;diff=3054&amp;oldid=prev"/>
		<updated>2024-10-31T10:40:14Z</updated>

		<summary type="html">&lt;p&gt;Creata pagina con &amp;quot;&amp;lt;noinclude&amp;gt;{{TOCright}} == Descrizione == Questo widget visualizza il tempo rimanente per l&amp;#039;evento corrente, o il tempo per l&amp;#039;inizio del prossimo evento. Questo widget va usato tramite il suo template-involucro {{tl|Event countdown widget}} per tracciarne gli usi.  Il template involucro va utilizzato in combinazione con {{tl|Event countdown}}, in quanto il widget da solo non produce nulla, modifica solo gli elementi inseriti dall&amp;#039;altro template.  == Utilizzo == === Param...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;{{TOCright}}&lt;br /&gt;
== Descrizione ==&lt;br /&gt;
Questo widget visualizza il tempo rimanente per l'evento corrente, o il tempo per l'inizio del prossimo evento. Questo widget va usato tramite il suo template-involucro {{tl|Event countdown widget}} per tracciarne gli usi.&lt;br /&gt;
&lt;br /&gt;
Il template involucro va utilizzato in combinazione con {{tl|Event countdown}}, in quanto il widget da solo non produce nulla, modifica solo gli elementi inseriti dall'altro template.&lt;br /&gt;
&lt;br /&gt;
== Utilizzo ==&lt;br /&gt;
=== Parametri ===&lt;br /&gt;
; name&lt;br /&gt;
: Opzionale. Testo visualizzato relativo all'obiettivo del conteggio (predefinito: &amp;lt;tt&amp;gt;L'evento&amp;lt;/tt&amp;gt;)&lt;br /&gt;
; displayutc&lt;br /&gt;
: L'ora (UTC) dalla quale cominciare a mostrare il contatore.&lt;br /&gt;
; startutc&lt;br /&gt;
: L'ora di inizio dell'evento (UTC).&lt;br /&gt;
; endutc&lt;br /&gt;
: L'ora di fine dell'evento (UTC).&lt;br /&gt;
; interval&lt;br /&gt;
: Il numero di minuti tra gli inizi di ogni evento (predefinito: &amp;lt;tt&amp;gt;180&amp;lt;/tt&amp;gt;)&lt;br /&gt;
; duration&lt;br /&gt;
: Opzionale. La durata di ogni ripetizione in minuti (predefinito: &amp;lt;tt&amp;gt;30&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Esempi ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Event countdown&lt;br /&gt;
| [[#Programmaizone|Finale Invernodì]] all'Arco del Leone&lt;br /&gt;
| displayutc = Jul 1 {{CURRENTYEAR}} 00:00&lt;br /&gt;
| startutc = Jul 1 {{CURRENTYEAR}} 08:01&lt;br /&gt;
| endutc = Jul 2 {{CURRENTYEAR}} 08:01&lt;br /&gt;
| interval = 180&lt;br /&gt;
| duration = 15&lt;br /&gt;
| margin-top = -3.65em&lt;br /&gt;
| border-bottom = 1px solid #AAA&lt;br /&gt;
}}&lt;br /&gt;
{{Event countdown&lt;br /&gt;
| Finale Invernodì a Kamadan&lt;br /&gt;
| displayutc = Jul 1 {{CURRENTYEAR}} 00:00&lt;br /&gt;
| startutc = Jul 1 {{CURRENTYEAR}} 08:16&lt;br /&gt;
| endutc = Jul 2 {{CURRENTYEAR}} 08:16&lt;br /&gt;
| interval = 180&lt;br /&gt;
| duration = 15&lt;br /&gt;
| margin-top = -1.95em&lt;br /&gt;
| border-bottom = 1px solid #AAA&lt;br /&gt;
}}&lt;br /&gt;
{{Event countdown widget}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoria:Widget]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;!--{counter assign=&amp;quot;EventCountdown_counter&amp;quot; name=&amp;quot;EventCountdown_counter&amp;quot;}--&amp;gt;&amp;lt;!--{if $EventCountdown_counter eq 1}--&amp;gt;&amp;lt;script&amp;gt;&lt;br /&gt;
/* Guild Wars Wiki: Event timer */&lt;br /&gt;
// Main function&lt;br /&gt;
function eventCountdown() {&lt;br /&gt;
  // Repeat this for every countdown timer&lt;br /&gt;
  $.each( $('.event-countdown'), function(i,v){&lt;br /&gt;
&lt;br /&gt;
    // Input parameters and defaults&lt;br /&gt;
    var display_utc  = new Date(v.attributes['data-displayutc'].value) || new Date('01 Jul 2018 00:00 UTC'); // display timer from this time onwards&lt;br /&gt;
    var start_utc    = new Date(v.attributes['data-startutc'].value) || new Date('01 Jul 2018 08:01 UTC'); // start time of first event&lt;br /&gt;
    var end_utc      = new Date(v.attributes['data-endutc'].value) || new Date('02 Jul 2018 08:16 UTC'); // end time of last event&lt;br /&gt;
    var duration_min = Number(v.attributes['data-duration'].value) || 30; // duration of event, in minutes&lt;br /&gt;
    var interval_min = Number(v.attributes['data-interval'].value) || 180; // time between the beginning of each event, in minutes&lt;br /&gt;
    var name         = v.attributes['data-name'].value || 'L\'evento';&lt;br /&gt;
&lt;br /&gt;
    // Calculated parameters (part 1)&lt;br /&gt;
    var now_utc     = new Date();&lt;br /&gt;
&lt;br /&gt;
    var now_ms      = now_utc.valueOf();&lt;br /&gt;
    var display_ms  = display_utc.valueOf();&lt;br /&gt;
    var start_ms    = start_utc.valueOf();&lt;br /&gt;
    var end_ms      = end_utc.valueOf();&lt;br /&gt;
&lt;br /&gt;
    // Check if timer should be showing -- if not, quit&lt;br /&gt;
    if (now_ms &amp;lt; display_ms || now_ms &amp;gt; end_ms) {&lt;br /&gt;
      $(v).addClass('hide');&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Calculated parameters (part 2)&lt;br /&gt;
    var duration_ms = duration_min * 60 * 1000;&lt;br /&gt;
    var interval_ms = interval_min * 60 * 1000;&lt;br /&gt;
&lt;br /&gt;
    var cycle = (now_ms - start_ms) / interval_ms; // has lots of decimals&lt;br /&gt;
&lt;br /&gt;
    var cycle_event_start_ms = start_ms + ( interval_ms * Math.floor(cycle) );&lt;br /&gt;
    var cycle_event_end_ms   = cycle_event_start_ms + duration_ms;&lt;br /&gt;
    var cycle_end_ms         = cycle_event_start_ms + interval_ms;&lt;br /&gt;
&lt;br /&gt;
    // Calculated parameters for display (part 3)&lt;br /&gt;
    var now_min             = now_ms / (1000 * 60);&lt;br /&gt;
    var cycle_event_end_min = cycle_event_end_ms / (1000 * 60);&lt;br /&gt;
    var cycle_end_min       = cycle_end_ms / (1000 * 60);&lt;br /&gt;
&lt;br /&gt;
    // Calculate if the current event has finished&lt;br /&gt;
    if (now_min &amp;gt; cycle_event_end_min) {&lt;br /&gt;
      // If an event has ended, display the time until the next event, in minutes&lt;br /&gt;
      var text = name + ' inizia tra ' + timeText(cycle_end_min - now_min) + '.';&lt;br /&gt;
    } else {&lt;br /&gt;
      // If an event is ongoing, display the time remaining, in minutes&lt;br /&gt;
      var text = name + ' è iniziato. ' + timeText(cycle_event_end_min - now_min) + ' alla fine dell\'evento in corso.';&lt;br /&gt;
    }&lt;br /&gt;
    $(v).text(text);&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Helper function to format time text from numerical minutes into words&lt;br /&gt;
function timeText(minutes) {&lt;br /&gt;
  minutes = Math.floor(minutes);&lt;br /&gt;
&lt;br /&gt;
  // Calculated parameters&lt;br /&gt;
  var m = minutes % 60;&lt;br /&gt;
  var h = Math.floor(minutes/60);&lt;br /&gt;
  var text = '';&lt;br /&gt;
&lt;br /&gt;
  // Check if less than a minute to go&lt;br /&gt;
  if ( minutes &amp;lt; 1) {&lt;br /&gt;
    text = 'meno di un minuto';&lt;br /&gt;
    return text;&lt;br /&gt;
  } else if (m &amp;gt; 0 &amp;amp;&amp;amp; h &amp;gt; 0) {&lt;br /&gt;
    text = h + (h &amp;gt; 1 ? ' ore' : ' ora') + ' e ' + m + (m &amp;gt; 1 ? ' minuti' : ' minuto');&lt;br /&gt;
  } else if (m == 0 &amp;amp;&amp;amp; h &amp;gt; 0) {&lt;br /&gt;
    text = h + (h &amp;gt; 1 ? ' ore' : ' ora');&lt;br /&gt;
  } else if (m &amp;gt; 0 &amp;amp;&amp;amp; h == 0) {&lt;br /&gt;
    text = m + (m &amp;gt; 1 ? ' minuti' : ' minuto');&lt;br /&gt;
  }&lt;br /&gt;
  return text;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// DEFER LOADING SCRIPT UNTIL JQUERY IS READY. WAIT 40MS BETWEEN ATTEMPTS.&lt;br /&gt;
function defer(method) {&lt;br /&gt;
    if (window.jQuery) {&lt;br /&gt;
        method();&lt;br /&gt;
    } else {&lt;br /&gt;
        setTimeout(function() { defer(method) }, 40);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// INITIALISATION&lt;br /&gt;
defer(function () {&lt;br /&gt;
  // Run once immediately&lt;br /&gt;
  eventCountdown();&lt;br /&gt;
  // Then run again every 60 seconds&lt;br /&gt;
  setInterval(eventCountdown, 60*1000);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;!--{/if}--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>MusPuiDiTe</name></author>
	</entry>
</feed>