Visualizzazione risultati 1 fino 8 di 8

Discussione: Conto alla rovescia per una data o un orario

  1. #1
    Guest

    Post Conto alla rovescia per una data o un orario

    Ciao,
    ho trovato nel web uno Javascript che permette di inserire in un sito un countdown per un giorno e un orario,ma noto che il countdown non si aggiorna al secondo,ma solo aggiornando la pagina.
    Vorrei sapere se per caso ho sbagliato e come potrei risolvere il problema.
    Il sito è questo
    Ciao
    Ultima modifica di PSW : 21-10-2005 alle ore 10.28.17

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    C'è scritto che il decremento lo fa ogni 5 secondi.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Guest

    Predefinito

    Se in basso alla data clicchi test vedrai che lo fara ogni secondo.

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Guarda qui e vedrai che funziona.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    Quello è un conto alla rovescia da 0 a 100.
    Io vorrei mettere uno che finisca in una precisa data e ora,indicando giorno,ora e secondi.

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Che panico... adesso provo ad improvvisarne uno io e vediamo se mi viene meglio perché da quello ci capisco poco o niente:
    Codice:
    /**
    funzione per settare l'HTML
    ID: id dell'elemento da modificare
    value: nuovo valore della stringa HTML
    */
    function setHTML (ID, value)
    {
       var element = document.getElementById (ID)
       if (element.firstChild)
          element.firstChild.nodeValue = value
       else
          element.innerHTML = value
    }
    
    /**
    restituisce il conteggio, come array (giorni, ore, minuti, secondi, millisec, segno)
    refDate: data e ora di riferimento del conteggio (costruita tramite oggetto Date)
    */
    function count (refDate)
    {
       // data e ora attuale
       var now = new Date ()
       
       // variabile di ritorno
       var ret = new Array (5)
       
       // diferenza tra le date in millisecondi
       var countMS = refDate.valueOf () - now.valueOf ()
       
       // scrive il segno (utile per determinare cosa fare se è passata la data): true se negativo, false in caso contrario
       ret[5] = (countMS < 0)
    
       // calcola millisecondi
       ret[4] = countMS % 1000
       
       // calcola secondi
       countMS = Math.floor (countMS / 1000)
       ret[3] = countMS % 60
       
       // calcola minuti
       countMS = Math.floor (countMS / 60)
       ret[2] = countMS % 60
       
       // calcola ore
       countMS = Math.floor (countMS / 60)
       ret[1] = countMS % 24
       
       // calcola giorni
       ret[0] = Math.floor (countMS / 24)
       
       // restituisce il vettore con i dati
       return ret
    }
    
    /**
    calcola e aggiorna volta per volta i dati
    ID: id dell'elemento da modificare
    refDate: data di riferimento del conteggio
    showN: mostra il conteggio se negativo (true = sì, false = no)
    */
    function write (ID, refDate, showN)
    {
       var data = count (refDate)
       if (data[5] && !showN)
       {
          setHTML (ID, "")
          return
       }
       var str = (data[5] && data[0] == 0 ? "-" : "") + data[0] + "d "
       str += data[1] + "h " + data[2] + "' " + data[3] + "\" " + data[4]
       setHTML (ID, str)
    }
    
    /**
    avvia la scrittura della data (metodo di servizio)
    nota **1: specifica la data secondo uno dei costruttori di Date
    nota **2: specifica se visualizzare il conteggio se negativo (true = sì, false = no)
    nota **3: specifica il timeout in millisecondi tra un aggiornamento e l'altro
    */
    function start ()
    {
       write('data',new Date(**1),**2)
       setInterval ("write('data',new Date(**1),**2)",**3)
    }
    questo dovrebbe funzionare (provvederò a testarlo come tutte le cose che "improvviso") se nel testo hai definito un elemento così:
    Codice HTML:
    <SPAN ID="data"></SPAN>
    e se intesti la pagina con questo evento:
    Codice HTML:
    <BODY onLoad="start()">
    Ecco, ci ho messo troppo, ma spero che comunque possa esserti d'aiuto...

    EDIT: con qualche piccola modifica, lo script funziona e puoi verificarlo su http://dementialsite.altervista.org/.../countdown.htm

    Stammi bene...
    Ultima modifica di dementialsite : 21-10-2005 alle ore 11.19.26
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    Guest

    Exclamation

    Mi sto impappinando di brutto
    Ho provato a mettere il tuo codice e a modificarlo un mucchio di volte ma c'è sempre qualcosa che non va.
    Non è che qualcuno di voi saprebbe come potrei semplicemente modificare il codice che ho già messo in modo che si aggiorni ogni secondo?
    Ciao

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Hai provato a guardare sul link che ti ho messo...? Li' funziona sia con IE che con Firefox (e adesso l'ho provato pure da Firefox su Linux...) e fa esattamente quello che tu chiedi: calcola giorni, ore, minuti, secondi e millisecondi (che se vuoi puoi togliere, ti basta non stampare data[4]) mancanti ad un determinato orario di una certa data... cos'ha che non funziona da te (leggi: hai un link della pagina in cui l'hai messo)?

    Stammi bene...
    Ultima modifica di dementialsite : 21-10-2005 alle ore 14.00.40
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •