• ModSenior •

    Che ne dici di questa cosa in javascript?

    <html>
    <head>
    <title> Esempio countdown</title>
    <script type="text/javascript">
    function countdown()
    {
    var_anno=2009;
    var_mese=12;
    var_giorno=7;
    var_ore=17;
    var_minuti=9;
    var_secondi=0;
    data_scandeza= new Date(var_anno,var_mese-1,var_giorno,var_ore,var_minuti,var_secondi);
    data_oggi= new Date();
    differenza=(data_scandeza-data_oggi);
    giorni=parseInt(differenza/86400000);
    differenza=differenza-(giorni86400000);
    ore=parseInt(differenza/3600000);
    differenza=differenza-(ore
    3600000);
    minuti=parseInt(differenza/60000);
    differenza=differenza-(minuti60000);
    secondi=parseInt(differenza/1000);
    differenza=differenza-(secondi
    1000);
    if (giorni <= "0" && ore <= "0" && minuti <= "0" && secondi <= "0")
    {
    document.getElementById("blocco").innerHTML="TEMPO SCADUTO";
    }
    else
    {
    document.getElementById("blocco").innerHTML=giorni+' giorni '+ore+' ore '+minuti+' min '+secondi+' sec';
    setTimeout("countdown()",1000)
    }
    }
    </script>
    </head>
    <body onload="countdown()">
    <div id="blocco"></div>
    </body>
    </html>


  • User Attivo •

    Ma è una pagina intera, io voglio inserire il countdown all'interno di una pagina...


  • ModSenior •

    Beh ma il file lo si può aggiornare tranquillamente.
    Io l'ho messa come fosse una pagina perchè cosi si poteva copiare e incollare il testo per provarlo.

    Si puo benissimo modificare a piacimento.
    In particolare per le tue esigenze ti consiglio di:

    • Creare un file Javascript e mettere li il codice Javascript presente nella pagina cosi resta più pulitio.
    • Includere tale file Javascript nella pagina generale che ha bisogno del countdown.
    • Creare un div all'interno della tua pagina con id "blocco" (o eventualmente cambiare il nome all'interno del codice Javascript).
    • Settare la data nel file Javascript.
    • Nel body della pagina mettere <body onload="countdown()">

  • User •

    Buongiorno, anche se è passato un pò di tempo dall'ultimo script, vorrei capire se era possibile e come poter fare aggiungere a questo script la possibilità di quando scade alla data stabilita un redirect di pagina, non so se sono stato chiaro nell'esporre il mio problema.

    A presto Giovanni


  • ModSenior •

    Qua dentro potresti mettere un location.href.

    if (giorni <= "0" && ore <= "0" && minuti <= "0" && secondi <= "0")
    {
    document.getElementById("blocco").innerHTML="TEMPO SCADUTO";
    location.href="http://www.google.it";
    }


  • User •

    Grazie mooolto gentile funziona. Grazie di tutto, anche per la celere risposta.


  • ModSenior •

    Alla prossima. 🙂


  • User Newbie •

    @marcocarrieri said:

    Alla prossima. 🙂

    Salve a tutti, e complimenti per la filosofia di supporto e condivisione della conoscenza alla base di questo forum.

    Vorrei chiedervi come gestire con questo script il fuso orario di chi visita la pagina, ovvero il mio countdown è settato sulla timezone italiana, ma chi legge il sito potrebbe essere in America o in Asia, quindi il countdown dovrebbe tenere conto della zona del visitatore della pagina per mostrare un countdown corretto.

    Grazie anticipatamente,

    RipKirby


  • ModSenior •

    Si gioca sull'orario UTC, e sui fusi orari (+2) quello italiano.[PHP]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="it">
    <head>
    <title> Esempio countdown</title>
    <script type="text/javascript">
    function countdown()
    {
    var_anno=2012;
    var_mese=08;
    var_giorno=21;
    var_ore=15;
    var_minuti=0;
    var_secondi=0;
    data_scandeza= new Date(var_anno,var_mese-1,var_giorno,var_ore,var_minuti,var_secondi);
    data_oggi= new Date();
    var now_utc = new Date(data_oggi.getUTCFullYear(), data_oggi.getUTCMonth(), data_oggi.getUTCDate(), data_oggi.getUTCHours(), data_oggi.getUTCMinutes(), data_oggi.getUTCSeconds());
    differenza=(data_scandeza-now_utc);
    giorni=parseInt(differenza/86400000);
    differenza=parseInt(differenza-(giorni86400000));
    ore=parseInt(differenza/3600000);
    ore=parseInt(ore-2);
    differenza=parseInt(differenza-((ore+2)3600000));
    minuti=parseInt(differenza/60000);
    differenza=parseInt(differenza-(minuti
    60000));
    secondi=parseInt(differenza/1000);
    differenza=parseInt(differenza-(secondi
    1000));
    if (giorni <= "0" && ore <= "0" && minuti <= "0" && secondi <= "0")
    {
    document.getElementById("blocco").innerHTML="TEMPO SCADUTO";
    }
    else
    {
    document.getElementById("blocco").innerHTML=giorni +' giorni '+ore+' ore '+minuti+' min '+secondi+' sec';
    setTimeout("countdown()",1000)
    }
    }
    function getGMTDate(date)
    {
    var week = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
    return week[date.getUTCDay()] + ", " + date.toGMTString();
    }
    </script>
    </head>
    <body onload="countdown()">
    <div id="blocco"></div>
    </body>
    </html>
    [/PHP]


  • User Newbie •

    Grazie mille, funziona perfettamente! 😄

    Alla prossima,

    Rip


  • ModSenior •

    Hai gia avvertito tutti gli amici di oltre continente e fatto il test? Eh eh..


  • User Newbie •

    no, ma ho aperto un paio di sessioni in remote desktop in Asia e in America. per testare la pagina con lo script

    Ciao

    Rip


  • User Newbie •

    sei un grande marcocarreri!!!
    ho un piccolo problemino nel codice che hai citato vorrei aumentare la grandezza del carattere del timer ma non so proprio come fare mi aiuteresti a farlo per favore???
    oltre alla grandezza del timer vorrei anche aumentare e magari cambiare di colore la scritta "TEMPO SCADUTO"...
    grazie in anticipo 😉


  • ModSenior •

    Lo puoi fare con i fogli di stile. 🙂
    Mettendo classi o id.