JS ... Zeit bis best. Datum rückwärts zählen

Azra

Grünschnabel
Hi Leute,

ich möchte einen Timer auf meine Page setzen, der bis zu einem Bestimmten Tag + Uhrzeit die Tage/Stunden/Minuten/Sekunden zählt. Hab jetzt allerdings ein Problem die Aktuelle Uhrzeit von dem "zukünftigen" Tag abzuziehen. Hier mal mein Code:

Code:
function DateTime() {
event = new Date(2004,31,10,16,0,0);
now = new Date();
now = event - now;
lefthours = now.getHours();
leftminutes = now.getMinutes();
leftseconds = now.getSeconds();
leftdays = now.getDate();
lefttime = "" + leftdays + " Tage, ";
lefttime += ((lefthours < 10) ? "0" : "") + lefthours + " Stunden, ";
lefttime += ((leftminutes < 10) ? "0" : "") + leftminutes + " Minuten und ";
lefttime += ((leftseconds < 10) ? "0" : "") + leftseconds + " Sekunden";
document.timer.time.value = lefttime;
Timer = setTimeout("DateTime()", 1000);
}

Würde mich freuen wenn mir jemand helfen könnte.

Gruß Dominik
 
:-) fast ein wenig ärgerlich, denn nun hab ich meins endlich zum Laufen bekommen:
PHP:
<script language="JavaScript" type="text/javascript">
var destination = new Date();
destination.setYear(2004);
destination.setMonth(9); // Januar = 0
destination.setDate(20);
destination.setMinutes(30);
destination.setSeconds(20);
setTimeout("countDate()", 1000);

function countDate() {
	var dst = destination;
	var now = new Date();
	var diff = parseInt((dst - now) / 1000);
	var days = parseInt(diff / (60 * 60 * 24));
	diff -= (days * 60 * 60 * 24);
	var hours = parseInt(diff / (60 * 60));
	diff -= (hours * (60 * 60));
	var minutes = parseInt(diff / 60);
	diff -= (minutes * 60);
	var seconds = parseInt(diff);
	document.getElementById("textfield").value = days + " Tage, " + hours + " Stunden, " + minutes + " Minuten, " + seconds + " Sekunden";
	setTimeout("countDate()", 500);
}
</script>
<body>
<input name="textfield" type="text" size="90">
</body>

Gruß
 
Hi,

na ja, mit innerHTML kannst Du bei den meisten Browsern den Inhalt eines td-Tags auslesen. Folgendes Beispiel trennt einen Datumsstring an dem Zeichen "." und gibt die einzelnen Zahlen aus. Du kannst die Strings in Zahlen umwandeln und Dein Datumsobjekt damit füttern:
HTML:
<script language="JavaScript" type="text/javascript">
function showCt(obj) {
    var ar = obj.innerHTML.split(".");
    for (var i=0; i<ar.length; i++) {
        alert(ar[i]);
    }
}
</script>
<body>
<table width="100">
<tr>
<td onClick="showCt(this)">24.12.2004</td>
</tr>
</table>
</body>

Gruß
.
 
javascript2.gif


Spaß beiseite: Wenn das Datum in der Zelle im richtigen Format (z.B. 24.12.2004) vorliegt, könnte das z.B. so aussehen:
HTML:
var cell = document.getElementById("datecell"); // datecell ist die ID der Zelle mit dem Datum
var ar = cell.innerHTML.split(".");
destination.setYear(parseInt(ar[2])); 
destination.setMonth(parseInt(ar[1]) - 1); // Januar = 0, deshalb 1 abziehen!
destination.setDate(parseInt(ar[0]));

Gruß
.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück