Wer kann script für counter anpassen ?

Harzmensch

Grünschnabel
Hallo!
Ich habe hier im Forum ein Script für einen Counter gefunden, der die verbleibenden Tage bis zum Tag X ausgibt. Ich benötige die Ausgabe allerdings in einem Textfeld. Was muss ich tun
Benötige dringend Hilfe.

Anbei das Script:

<script type="text/javascript">
<!--
var year = 2005;
var month = 05;
var day = 14

var Jetzt = new Date();
var ZeitPunkt01 = Jetzt.getTime();
var Jahr = Jetzt.getYear();
var Monat = Jetzt.getMonth();
var Tag = Jetzt.getDay();
Jetzt.setYear(year);
Jetzt.setMonth(month);
Jetzt.setDate(day);
var ZeitPunkt02 = Jetzt.getTime();
var differenzMS = ZeitPunkt02 - ZeitPunkt01;
var Tage=Math.round(differenzMS/86400000);
alert("Es sind noch "+Tage+" Tage bis zum "+day+"-"+month+"-"+year);
//-->
</script>
 
Hi,

am besten packst du das Script in eine Funktion. Dieser übergibst du als Parameter die ID
des Textfeldes. Im onload-Event rufst du die Funktion auf, ermittelst mit getElementById
das gewünschte Element und schreibst die berechnete Zeit in das Feld.

Beispiel:
HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
<!--
var year = 2005;
var month = 05;
var day = 14

function counter(strID){
  var Jetzt = new Date();
  var ZeitPunkt01 = Jetzt.getTime();
  var Jahr = Jetzt.getFullYear();
  var Monat = Jetzt.getMonth();
  var Tag = Jetzt.getDay();
  Jetzt.setYear(year);
  Jetzt.setMonth(month);
  Jetzt.setDate(day);
  var ZeitPunkt02 = Jetzt.getTime();
  var differenzMS = ZeitPunkt02 - ZeitPunkt01;
  var Tage=Math.round(differenzMS/86400000);

  document.getElementById(strID).value = "Es sind noch "+Tage+" Tage bis zum "+day+"-"+month+"-"+year;
}
//-->
</script>
</head>
<body onload="counter('timeID');">
  <div><input type="text" id="timeID" value="" style="width: 400px;" /></div>
</body>
</html>
Ciao
Quaese
 
Danke Quaese,
von der Darstellung her ist es genau das, was ich brauche. Leider rechnet der Bursche aber falsch. Wenn ich z.B. das Datum von morgen eingebe, zeigt er mir 32 verbleibende Tage.
Wärest Du vielleicht nochmal so nett ? Aber schlaf erstmal aus- ich habe ja auch gepennt, während Du meine Hausaufgaben erledigt hast :)
 
Hi,

du musst beachten, dass die Monatszählung bei Null beginnt (0=Januar, 1=Februar usw.).

Ciao
Quaese
 
Ich stehe vielleicht etwas auf der Leitung? Wenn ich das mache, verändert sich das Zieldatum - und die Rechnung stimmt immer noch nicht.
Ich habe zwischendurch versucht, die Formel zu modifizieren:
var Tage=(Math.round(differenzMS/86400000))-31)
Das scheint auf den ersten Blick zu funktionieren, kommt mir aber wie eine kleine Vergewaltigung vor. Was ist denn wenn ein Monat mit 30 Tagen kommt?
 
Das Zieldatum verändert sich nicht, das ist doch gerade der Witz.

Der 5 Januar 2005 ist für JavaScript nicht der 5.1.2005 sondern der 5.0.2005. Der 12.12 ist der 12.11. Die Monate sind alle um 1 nach hinten verschoben.

Bei der Ausgabe musst du allerding dann auch wieder im Monat 1 dazu zählen:
HTML:
 var month = 4
...
document.getElementById(strID).value = "Es sind noch "+Tage+" Tage bis zum "+day+"-"+(month+1)+"-"+year;
 
Zuletzt bearbeitet:
Das ist eigentlich genau das was ich suche. Nur müsste dies ein wenig modifiziert werden. Ich möchte mein Geburtstdatum + Uhrzeit eingeben. Der Counter soll dann mein Alter in x Jahre, x Monate, x Tage, x Stunden, x Minuten angeben.

Zudem sollte der Counter sich nicht in einem Textfeld befinden.

Ich hoffe ihr könnt mir da weiterhelfen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück