Buon giorno,
premetto che già ho letto vari post precedenti seza trovare risposta.
il mio problema è il seguente: ho questo script per il countdown che funzione regolarmente però se cerco di sostituire la data di partenza presa lato client con quella lato server il countdown procede ma visivamente lo scorrimento dei secondi non è più fluido, è necessario ricaricare la pagina per vedere quanto tempo manca.
La sostituzione della data di riferimento da lato client a lato server si applica in seguente codice php:
<?php
$SysTime = time();
$SysTime=$SysTime*1000;
?>
però se metto la variabile ottenuta all'interno di :
dateNow = new Date(<?php echo $SysTime; ?>);
come dicevo il conteggio alla rovescia si interrompe.
Come devo procedere?
codice usato:
<script type="text/javascript">
//################################################## ####################################
// Version: v2.0
// Date: 2011-03-31
// Description: displays the amount of time until the "dateFuture" entered below.
// NOTE: the month entered must be one less than current month. ie; 0=January, 11=December
// NOTE: the hour is in 24 hour format. 0=12am, 15=3pm etc
// format: dateFuture1 = new Date(year,month-1,day,hour,min,sec)
// example: dateFuture1 = new Date(2003,03,26,14,15,00) = April 26, 2003 - 2:15:00 pm
dateFuture1 = new Date(2012,3,23,17,20,43);
// TESTING: comment out the line below to print out the "dateFuture" for testing purposes
//document.write(dateFuture +"
");
<?php
$SysTime = time();
$SysTime=$SysTime*1000;
?>
//###################################
//nothing beyond this point
function GetCount(ddate,iid){
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){
document.getElementById(iid).innerHTML="Now!";
}
// 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
if(days != 0){out += days +" "+((days==1)?"g":"g")+" ";}
if(hours != 0){out += hours +" "+((hours==1)?"h":"h")+" ";}
out += mins +" "+((mins==1)?"m":"m")+" ";
out += secs +" "+((secs==1)?"s":"s")+" ";
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>
<div id="countbox1"></div>