loddarmattheus
Erfahrenes Mitglied
Hallo,
gestern fand ich dieses Script, welches für meine Zwecke schon gut geeignet ist:
Es zählt auch schön bis zum Zieldatum runter. Allerdings wenn ich versuche, auch das Startdatum mit Daten aus meiner MySQL zu füttern, versagt es den Dienst. Er zählt nicht weiter.
Ich nehme an, das hängt irgendwie mit dem
zusammen. Da ich aber nicht der hellste in Sachen javascript bin, wäre ich für jeden Hinweis dankbar.
gestern fand ich dieses Script, welches für meine Zwecke schon gut geeignet ist:
Code:
<html>
<head>
<title>Datum-Countdown mit JavaScript</title>
<script language="JavaScript">
// Ziel-Datum in MEZ
var jahr=2222, monat=2, tag=22, stunde=22, minute=22, sekunde=22;
var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);
function countdown() {
startDatum=new Date(); // Aktuelles Datum
// Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
if(startDatum<zielDatum) {
var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;
// Jahre
while(startDatum<zielDatum) {
jahre++;
startDatum.setFullYear(startDatum.getFullYear()+1);
}
startDatum.setFullYear(startDatum.getFullYear()-1);
jahre--;
// Monate
while(startDatum<zielDatum) {
monate++;
startDatum.setMonth(startDatum.getMonth()+1);
}
startDatum.setMonth(startDatum.getMonth()-1);
monate--;
// Tage
while(startDatum.getTime()+(24*60*60*1000)<zielDatum) {
tage++;
startDatum.setTime(startDatum.getTime()+(24*60*60*1000));
}
// Stunden
stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);
// Minuten
minuten=Math.floor((zielDatum-startDatum)/(60*1000));
startDatum.setTime(startDatum.getTime()+minuten*60*1000);
// Sekunden
sekunden=Math.floor((zielDatum-startDatum)/1000);
// Anzeige formatieren
(jahre!=1)?jahre=jahre+" Jahre, ":jahre=jahre+" Jahr, ";
(monate!=1)?monate=monate+" Monate, ":monate=monate+" Monat, ";
(tage!=1)?tage=tage+" Tage, ":tage=tage+" Tag, ";
(stunden!=1)?stunden=stunden+":":stunden=stunden+" Stunde, ";
(minuten!=1)?minuten=minuten+":":minuten=minuten+" Minute und ";
if(sekunden<10) sekunden="0"+sekunden;
(sekunden!=1)?sekunden=sekunden+"":sekunden=sekunden+" Sekunde";
document.getElementById('c2').innerHTML = stunden + minuten + sekunden;
setTimeout('countdown()',200);
}
// Anderenfalls alles auf Null setzen
else document.countdownform.value=
"0 Jahre, 0 Monate, 0 Tage, 0 Stunden, 0 Minuten und 00 Sekunden";
}
</script>
</head>
<body onload="countdown()">
<div align=center>
<SPAN id=c2 style="FONT: bold 14px arial; COLOR: red;"></SPAN><br>
</div>
</body>
</html>
Es zählt auch schön bis zum Zieldatum runter. Allerdings wenn ich versuche, auch das Startdatum mit Daten aus meiner MySQL zu füttern, versagt es den Dienst. Er zählt nicht weiter.
PHP:
$timestamp = "March 10, 1998 22:48:00";
....
startDatum = new Date('<?php echo $timestamp ?>');
Ich nehme an, das hängt irgendwie mit dem
Code:
startDatum.setFullYear(startDatum.getFullYear()+1);
....
usw.
zusammen. Da ich aber nicht der hellste in Sachen javascript bin, wäre ich für jeden Hinweis dankbar.