• User

    javascript countdown che sfasa

    Ciao ragazzi ho costruito questo codice che prendendo giorno mese anno di scadenza dal database mi fa un conto alla rovescia (unix finale meno unix corrente convertita in gironi, ore, minuti, secondi)
    Il problema è ke il counter non restituisce un secondo preciso ma sfasa, a volte va a tempo (1sec = 1sec) a volte 1sec = 1/2 sec, una volta salta 3 secondi....insomma sfasa....
    Sapete darmi qualche cosniglio o magari vedete un errore nello script che io non noto?
    Grazie a tutti

    
    <script language="JavaScript">
    
    var mytime = <? echo time(); ?>;
    var mynow = mytime;
    
    
    
    function setmynow(){
        mynow++;
        //document.getElementById('debug').innerHTML = "mynow : " +mynow + "<br>";
    }
    
    function showtime(mydiv, final){
        var diff = final - mynow;
        var diffsec = diff%60;
        var diffmin = diff/60;
        var diffmin2 = parseInt(diffmin%60);
        var diffhour = diff/3600;
        var diffhour2 = parseInt(diffhour%24);
        var diffday = parseInt(diff/86400);
        var zerog;
        var zeroh;
        var zerom;
        var zeros;
        
        if (diffday < 10) {
            zerog="0";
        }else{
            zerog="";
        }
        
        if (diffhour2 < 10) {
            zeroh="0";
        }else{
            zeroh="";
        }
        
        if (diffmin2 < 10) {
            zerom="0";
        }else{
            zerom="";
        }
        
        if (diffsec < 10) {
            zeros="0";
        }else{
            zeros="";
        }
        
        document.getElementById(mydiv).innerHTML = zerog + diffday + "g " + zeroh + diffhour2+ "h "+ zerom + diffmin2+ "m "+ zeros + diffsec + "s";
        
        if(diff<=0){
            document.getElementById(mydiv).innerHTML = "&nbsp; Asta Terminata";
        }
    
    }
    
    
    setInterval("setmynow()", 1000); 
    </script>
    
    <div class="clockindex" id="clock<?php echo $row_aste['id'] ?>">
    </div>
    
    
        <script language="JavaScript">
        var final<?php echo $row_aste['id'] ?> = <?php echo mktime($row_aste['ora'], $row_aste['minuto'], $row_aste['secondo'], $row_aste['mese'], $row_aste['giorno'], $row_aste['anno']); ?>;
        intervallo<?php echo $row_aste['id'] ?> = setInterval("showtime('clock<?php echo $row_aste['id'] ?>', final<?php echo $row_aste['id'] ?>)", 1000); 
        </script> 
    
    

  • User Attivo

    io ho copiato lo script e testato su IE e FF, ma vedo i secondi che vanno alla perfezione!