Salve, tempo fa ho composto questo codice ke fa un countdown in unix con dei dati presi dal database....già allora mi accorsi ke il counter scattava fastidiosamente (in IE salta un secondo, in mozilla invece sballa "facendo valere un secondo 500ms o meno" ma a volte è a tempo) ma lasciai perdere...
Ora però lo script mi serve e non riesco a trovare una soluzione a questo fastidioso problema
Spiego brevemente il codice....
ricavo il valore UNIX al momento corrente, dai dati estrapolati dal database creo la UNIX della scadenza del countdown, ovviamente la loro differenza è la UNIX ke deve diminuire ad ogni secondo.
Codice PHP:
<script language="JavaScript">
var mytime = <? echo time(); ?>;
var mynow = mytime;
function setmynow(){
mynow++;
//document.getElementById('debug').innerHTML = "mynow : " +mynow + "
";
}
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 = " 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_query['id'] ?> = <?php echo mktime($row_query['ora'], $row_query['minuto'], $row_query['secondo'], $row_query['mese'], $row_query['giorno'], $row_query['anno']); ?>;
intervallo<?php echo $row_query['id'] ?> = setInterval("showtime('clock<?php echo $row_query['id'] ?>', final<?php echo $row_query['id'] ?>)", 300);
</script>