Frage zu Countdownscript

spikaner

Quereinsteiger @ php
Habe mir das hier "zusammengebastellt", warum springt dann nach beendigung der Countdowns die Anzeige nicht um

PHP:
<?php
$timestamp = time() + 20;
$testausgabe = date("F, j Y H:i:s",$timestamp);
?>
<script type='text/javascript'>
var end = new Date('<?php echo $testausgabe ?>');
function toSt2(n) {
  s = '';
  if (n < 10) s += '0';
  return (s + n).toString();
}
function toSt3(n) {
  s = '';
  if (n < 10) s += '00';
  else if (n < 100) s += '0';
  return (s + n).toString();
}
function countdown() {
  d = new Date();
  count = Math.floor(end.getTime() - d.getTime());
  if(count > 0) {
    miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
    seconds = toSt2(count%60); count = Math.floor(count/60);
    minutes = toSt2(count%60); count = Math.floor(count/60);
    hours = toSt2(count%24); count = Math.floor(count/24);
    days = count;
    document.getElementById('c1').innerHTML = days + ' Tage';
    document.getElementById('c2').innerHTML = hours + ':' + minutes + ':' + seconds
    setTimeout('countdown()', 50);
  }
else
{
    document.getElementById('c3').innerHTML = "LINK";
}
}
</script>

<body onload='countdown();'>

<div align=center>
<?php
If ($timestamp >= time()){
?>
 <SPAN id=c1 style="FONT: bold 14px arial; COLOR: red;"></SPAN><br>
 <SPAN id=c2 style="FONT: bold 14px arial; COLOR: red;">;</SPAN><br>
<?php }else{ ?>
 <SPAN id=c3 style="FONT: bold 14px arial; COLOR: green;">;</SPAN><br>
<?php } ?>
</div>

mfg Spikaner
 
Lass dir mal die Variablen ausgeben. Ich denke dann wirst du den Fehler finden. Ich sehe jetzt auf die schnelle auch nichts.
PS: Du meinst doch die if() abfarge von c1 & c2 uf c3 oder?
Gruß
5im0n
 
Ja genau,
time() gibt mir 1194506869 aus $timestamp 1194506889 also ansich richtig

Ahh ich glaub ich weiß wo der Fehler liegt das script wird ja nur einmal abgearbeitet und somit kann das mit der If abfrage nicht funktionieren wie ich es mir gedacht habe aber wie bekomme ich es nun zum laufen?

mfg Spikaner
 
Zuletzt bearbeitet:
Belese dich mal zu folgenden Javascript-Befehlen:
setTimeout wäre wohl für dich..

PHP:
window.setTimeout("deineFunktion()", 1000);
window.setInterval("deineFunktion()" 1000);

Beachte, dass der Zahlenwert in Milisekunden gemessen wird, heißt 1000ms = 1s

Gruß TvP
 
Hab es jetzt so fast gelöst.
Das einzige Problem wie kann ich über Java die Farben realisieren sprich sollange der Countdown zählt soll es rot sein sobald er auf 0 ist grün.
PHP:
<?php
$timestamp = time() + 20;
$testausgabe = date("F, j Y H:i:s",$timestamp);
echo time();
echo $timestamp;
?>
<script type='text/javascript'>
var end = new Date('<?php echo $testausgabe ?>');
function toSt2(n) {
  s = '';
  if (n < 10) s += '0';
  return (s + n).toString();
}
function toSt3(n) {
  s = '';
  if (n < 10) s += '00';
  else if (n < 100) s += '0';
  return (s + n).toString();
}
function countdown() {
  d = new Date();
  count = Math.floor(end.getTime() - d.getTime());
  if(count > 0) {
    miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
    seconds = toSt2(count%60); count = Math.floor(count/60);
    minutes = toSt2(count%60); count = Math.floor(count/60);
    hours = toSt2(count%24); count = Math.floor(count/24);
    days = count;
    document.getElementById('c1').innerHTML = days + ' Tage';
    document.getElementById('c2').innerHTML = hours + ':' + minutes + ':' + seconds
    setTimeout('countdown()', 50);
  }
else
{
    document.getElementById('c1').innerHTML = '00:00:00';
    document.getElementById('c2').innerHTML = "<a href=\"bla.php\">weiter</a>";
}
}
</script>

<body onload='countdown();'>

<div align=center>
 <SPAN id=c1 style="FONT: bold 14px arial; COLOR: red;"></SPAN><br>
 <SPAN id=c2 style="FONT: bold 14px arial; COLOR: red;">;</SPAN><br>
</div>
P.S Ein Mod/Admin sollte das ganze jetzt ins Jacvascript Forum verschieben

mfg Spikaner
 
PHP:
<?php
$timestamp = time() + 5;
$testausgabe = date("F, j Y H:i:s",$timestamp);
echo time();
echo $timestamp;
?>
<script type='text/javascript'>
var end = new Date('<?php echo $testausgabe ?>');
function toSt2(n) {
  s = '';
  if (n < 10) s += '0';
  return (s + n).toString();
}
function toSt3(n) {
  s = '';
  if (n < 10) s += '00';
  else if (n < 100) s += '0';
  return (s + n).toString();
}
function countdown() {
  d = new Date();
  count = Math.floor(end.getTime() - d.getTime());
  if(count > 0) {
    miliseconds = toSt3(count%1000); count = Math.floor(count/1000);
    seconds = toSt2(count%60); count = Math.floor(count/60);
    minutes = toSt2(count%60); count = Math.floor(count/60);
    hours = toSt2(count%24); count = Math.floor(count/24);
    days = count;
    document.getElementById('c1').innerHTML = days + ' Tage';
    document.getElementById('c2').innerHTML = hours + ':' + minutes + ':' + seconds
    setTimeout('countdown()', 50);
  }
else
{
    document.getElementById('c1').style.color = 'green';
    document.getElementById('c1').innerHTML = '00:00:00';
    document.getElementById('c2').innerHTML = "<a href=\"bla.php\">weiter</a>";
}
}
</script>

<body onload='countdown();'>

<div align=center>
 <SPAN id=c1 style="FONT: bold 14px arial; COLOR: red;"></SPAN><br>
 <SPAN id=c2 style="FONT: bold 14px arial; COLOR: red;">;</SPAN><br>
</div>

Die Änderung:
Javascript:
document.getElementById('c1').style.color = 'green';
 
Zurück