Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    problema countdown con orario server

    Salve a tutti,
    ho un piccolo problema con un countdown del quale posto il codice.
    In pratica lo script prende una data futura la confronta con quella attuale e mostra la differenza aggiornandosi ogni secondo.
    Il problema è quello di passare allo script la data del server e non quella del client.
    Nella riga dateNow = new Date(); a dateNow viene assegnata la data odierna del client.
    Io ho modificato la suddetta riga in dateNow = new Date(".date("Y,n,j,H,i,s", time())."); in modo tale da assegnare a Date la data del server impostata come variabile php.
    La variabile $data contiene la data futura ed è formattata allo stesso modo dell'argomento passato a Date.

    Il risultato che ottengo è corretto ma il contdown rimane fisso anzichè aggiornarsi ogni secondo. Qualcuno sa perchè e magari sa dirmi come risolvere la situazione?

    Grazie in anticipo.
    Puravida


    codice:
    <script type=\"text/javascript\">
    dateFuture1 = new Date($data);
    function GetCount(ddate,iid){ 
    dateNow = new Date(".date("Y,$mese_attuale,j,H,i,s", time())."); //grab current date
    //dateNow = new Date(); //grab current date
    amount = ddate.getTime() - dateNow.getTime(); //calc milliseconds between dates
    delete dateNow;
    // if time is already past
    if(amount < 0){
    window.location = \"index.php\";
    }
    // else date is still good 
    else{
    days=0;hours=0;mins=0;secs=0;out=\"\";
    amount = Math.floor(amount/1000);//kill the \"milliseconds\" so just secs
    days=Math.floor(amount/86400);//days 
    amount=amount%86400;
    hours=Math.floor(amount/3600);//hours
    amount=amount%3600; 
    mins=Math.floor(amount/60);//minutes 
    amount=amount%60;
    secs=Math.floor(amount);//seconds
    out += (days<=9?'<span class=giorni>0':'<span class=giorni>')+days+\"</span>\";
    out += (hours<=9?'<span class=ore>0':'<span class=ore>')+hours+\"</span>\";
    out += (mins<=9?'<span class=minuti>0':'<span class=minuti>')+mins+\"</span>\";
    out += (secs<=9?'0':'')+secs+\"  \";
    out = out.substr(0,out.length-2); 			document.getElementById(iid).innerHTML=out; 			 			 		
    setTimeout(function(){GetCount(ddate,iid)}, 1000);
    }
    }
    window.onload=function(){
    GetCount(dateFuture1, 'countbox1');
    }
    </script>
    /dateNow = new Date(); /dateNow = new Date(); dateNow = new Date();

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    dateNow = new Date(".date("Y,$mese_attuale,j,H,i,s", time())."); //grab current date

    Lo devi mettere all'esterno della funzione, altrimenti ogni volta viene reinizializzata con la data e ora scritta dal server quando ti ha inviato la pagina.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Anche mettendolo fuori dalla funzione in questo modo
    codice:
    dateFuture1 = new Date($data);
    dateNow = new Date(".date("Y,$mese_attuale,j,H,i,s", time())."); //grab current date
    function GetCount(ddate,iid){...
    il risultato non cambia, ottengo sempre il giusto calcolo della differenza di tempo tra il momento attuale e la scadenza, ma il countdown non si aggiorna.

  4. #4
    RISOLTO !!!!!
    Ho usato il codice preso da qui
    http://www.dynamicdrive.com/dynamici...dhtmlcount.htm

    Riuscendo a metterne anche più di 1 per pagina semplicemente duplicando il codice che va nel body e assegnando al div countdowncontainer un numero progressivo.

    Saludos....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.