Countdown
~surfer~
- javascript
Hallo Forumler,
habe mal wieder ein kleines Problem:
Ich möchte auf meiner Seite einen Countdown via Javascript zeigen (ja, bis zum Start der WM :-)). Ich habe auch schon ein passendes script, schaffe es nur nicht die Tage richtig darstellen zu lassen. Sie werden immer so dargestellt: "017 Tage..." ich möchte aber das es so aussieht: "17 Tage..." -> das hat Platzgründe.
Wo kann ich das festlegen?
Hier das script:
<script language="JavaScript">
var jahr=2006, monat=6, tag=9, stunde=18, minute=0, sekunde=0; // Ziel-Datum in MEZ
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
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setFullYear(startDatum.getFullYear()+1)<=zielDatum) jahre++;
}
startDatum.setFullYear(startDatum.getFullYear()-1);
}
// Restliche Tage zum Monatsende ermitteln
var restTage=0;
var m=startDatum.getMonth();
if(m==1-1||m==3-1||m==5-1||m==7-1||m==8-1||m==10-1||m==12-1) restTage=31-startDatum.getDate();
else if(m==4-1||m==6-1||m==9-1||m==11-1) restTage=30-startDatum.getDate();
else if(m==2-1) {
if(startDatum.getFullYear()%4==0 && (startDatum.getFullYear()%100!=0 || startDatum.getFullYear()%400==0)) restTage=29-startDatum.getDate(); // Schaltjahr
else restTage=28-startDatum.getDate();
}
// Start- und Ziel-Tag merken und auf 1 setzen
var startTag=startDatum.getDate();
var zielTag=zielDatum.getDate();
startDatum.setDate(1);
zielDatum.setDate(1);
// Monate
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setMonth(startDatum.getMonth()+1)<=zielDatum) monate++;
}
startDatum.setMonth(startDatum.getMonth()-1);
}
// Tatsächlichen Start- und Ziel-Tag berücksichtigen
if(startDatum.getMonth()==zielDatum.getMonth()) {
if(startTag<=zielTag) startDatum.setDate(startTag);
else {
monate--;
tage=restTage+1;
}
}
else {
startDatum.setMonth(startDatum.getMonth()+1);
if(startTag>=zielTag) tage=restTage+1;
else {
monate++;
startDatum.setDate(startTag);
}
}
zielDatum.setDate(zielTag);
// Tage
restTage=Math.floor((zielDatum-startDatum)/(24*60*60*1000));
startDatum.setTime(startDatum.getTime()+restTage*24*60*60*1000);
tage+=restTage;
// 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
(tage!=1)?tage=tage+" Tage, ":tage=tage+" Tag, ";
(stunden!=1)?stunden=stunden+" Stunden, ":stunden=stunden+" Stunde, ";
(minuten!=1)?minuten=minuten+" Minuten und ":minuten=minuten+" Minute und ";
if(sekunden<10) sekunden="0"+sekunden;
(sekunden!=1)?sekunden=sekunden+" Sekunden":sekunden=sekunden+" Sekunde";
document.countdownform.countdowninput.value=jahre+monate+tage+stunden+minuten+sekunden;
setTimeout('countdown()',200);
}
// Anderenfalls alles auf Null setzen
else document.countdownform.countdowninput.value="0 Tage, 0 Stunden, 0 Minuten und 00 Sekunden";
}
</script>
Besten Dank!
Hello out there!
Ich habe auch schon ein passendes script
Was du wohl irgenwoher aus dem Netz hast und keine Ahnung hast, was das eigentlich tut?
Mir erscheint das unnötig kompliziert, ich würd’s wegschmeißen und ein eigenes schreiben, das SELFHTML-Beispiel <http://de.selfhtml.org/javascript/beispiele/aufenthaltsdauer.htm@title=Aufenthaltsdauer auf Web-Seite anzeigen> sollte dabei hilfreich sein.
Sie werden immer so dargestellt: "017 Tage..."
Ich vermute mal, die '0' kommt von jahre oder von monate.
<script language="JavaScript">
HTML-Fehler: notwendiges type-Attribut fehlt. <http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=So wird’s richtig gemacht.>
See ya up the road,
Gunnar
Hi Gunnar,
Was du wohl irgenwoher aus dem Netz hast und keine Ahnung hast, was das eigentlich tut?
Das ist wohl wahr - von einer Seite für kostenlose Scripts...
Mir erscheint das unnötig kompliziert, ich würd’s wegschmeißen und ein eigenes schreiben, das SELFHTML-Beispiel sollte dabei hilfreich sein.
Damit komm ich (noch) nicht klar. Hab wie du schon bemerkt hast keine Ahnung...
Trotzdem Danke.