Autor |
Nachricht |
Omarius
Threadersteller
Dabei seit: 07.10.2006
Ort: Aachen
Alter: 34
Geschlecht:
|
Verfasst So 08.10.2006 17:01
Titel JavaSript Countdown tickt nicht |
|
|
Dieser Countdown müsste jede Sekunde einmal schalten, tut er aber nicht.. Warum?
Code: |
<?
$Aktuell = time();
$Nachher = $Aktuell + 30;
$i = $Nachher - $Aktuell;
?>
<html>
<head>
<script language='javascript'>
var lngStartTime = "<?php echo $i; ?>";
function countDown(){
// Zeitdifferenz in Sekunden seit 1.1.1970 zuweisen
var lngTime = lngStartTime;
// Stunden, Minuten und Sekunden berechnen und formatieren
var intStunden = Math.floor(lngTime / (60*60));
intStunden = (intStunden < 10) ? ('0' + intStunden) : intStunden ;
lngTime = lngTime % (60*60);
var intMinuten = Math.floor(lngTime / (60));
intMinuten = (intMinuten < 10) ? ('0' + intMinuten) : intMinuten ;
lngTime = lngTime % (60);
var intSekunden = Math.floor(lngTime);
intSekunden = (intSekunden < 10) ? ('0' + intSekunden) : intSekunden ;
// Zeitdifferenz in Input-Feld ausgeben
document.formTime.showTime.value = intStunden + ' : ' + intMinuten + ' : ' + intSekunden;
// 1 Sekunde von Zeitdifferenz abziehen
lngTime--;
// Zeit jede Sekunde neu berechnen
window.setTimeout('countDown()', 1000);
}
</script>
</head>
<body onLoad="countDown();">
<form name="formTime">
Gebäude fertig in: <input type="Text" name="showTime" value="whey" readonly size="100" maxlength="">
</form>
</body>
</html>
|
Zuletzt bearbeitet von Omarius am So 08.10.2006 17:02, insgesamt 1-mal bearbeitet
|
|
|
|
|
Zelur
Account gelöscht
Ort: -
|
Verfasst So 08.10.2006 19:42
Titel
|
|
|
Hallo Omarius....
Schau dir doch mal die Funktion "countDown()" an:
Code: |
function countDown(){
// Zeitdifferenz in Sekunden seit 1.1.1970 zuweisen
var lngTime = lngStartTime;
|
Die Varialbe "lngTime" wird bei jedem Durchlauf der Funktion (der ja jede Sekunde stattfindet) wieder mit dem Anfangswert gefüllt.... also kannst du unten so oft du willst...
Code: |
// 1 Sekunde von Zeitdifferenz abziehen
lngTime--;
|
...die Zeit verändern... oben bekommt sie sowieso immer wieder den gleichen Wert zugewiesen.... der übrigens immer 30 sein wird!
Code: |
$Aktuell = time();
$Nachher = $Aktuell + 30;
$i = $Nachher - $Aktuell;
|
Die Variable $i wird immer den Wert 30 haben...
Also einfach die Zuweisung...
Code: |
var lngTime = lngStartTime;
|
...vor die Funktion stellen, dann dürfte der Countdown zumindest einmal laufen...
Gruß Zelur
|
|
|
|
|
Anzeige
|
|
|
Zelur
Account gelöscht
Ort: -
|
Verfasst So 08.10.2006 20:20
Titel
|
|
|
Fortsetzung:
Hier habe ich eine Mögliche Ausführung des Scripts, das auch ohne PHP auskommt. (warum PHP nehmen, wenns auch einfacher geht )
Der Zeitpunkt wurde hier auf den 1.Januar 2007 um 0:00:00 gelegt....
Code: |
<html>
<head>
<script language='javascript'>
// gewuenschter Ziel-Zeitpunkt
var jahr = 2007;
var monat = 1;
var tag = 1;
var stunden = 0;
var minuten = 0;
var sekunden = 0;
// Monat dekrementieren (Januar = 0)
monat--;
// Stunden dekrementieren (GMT+1)
stunden--;
// Ziel-Zeitpunkt
var time_target = new Date(jahr, monat, tag, stunden, minuten, sekunden);
function countDown(){
// aktuelle Zeit
var time_now = new Date();
// Zeitdifferenz (durch 1000 teilen, da Date() Millisekunden zurueckgibt....)
var lngTime = (time_target - time_now) / 1000;
// Stunden, Minuten und Sekunden berechnen und formatieren
var intStunden = Math.floor(lngTime / (60*60));
intStunden = (intStunden < 10) ? ('0' + intStunden) : intStunden ;
lngTime = lngTime % (60*60);
var intMinuten = Math.floor(lngTime / (60));
intMinuten = (intMinuten < 10) ? ('0' + intMinuten) : intMinuten ;
lngTime = lngTime % (60);
var intSekunden = Math.floor(lngTime);
intSekunden = (intSekunden < 10) ? ('0' + intSekunden) : intSekunden ;
// Zeitdifferenz in Input-Feld ausgeben
document.formTime.showTime.value = intStunden + ' : ' + intMinuten + ' : ' + intSekunden;
// Zeit jede Sekunde neu berechnen
window.setTimeout('countDown()', 1000);
}
</script>
</head>
<body onLoad="countDown();">
<form name="formTime">
Gebäude fertig in: <input type="Text" name="showTime" value="whey" readonly size="100" maxlength="">
</form>
</body>
</html>
|
Falls du noch Fragen haben solltest, einfach melden....
mfg Zelur
Zuletzt bearbeitet von am So 08.10.2006 20:24, insgesamt 1-mal bearbeitet
|
|
|
|
|
Raumwurm
Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst So 08.10.2006 20:51
Titel
|
|
|
Zelur hat geschrieben: | Hier habe ich eine Mögliche Ausführung des Scripts, das auch ohne PHP auskommt. (warum PHP nehmen, wenns auch einfacher geht ) |
Schätzungsweise weil er dann so unabhängig
von der clientseitigen Zeiteinstellung ist.
Zuletzt bearbeitet von Raumwurm am So 08.10.2006 20:52, insgesamt 1-mal bearbeitet
|
|
|
|
|
Omarius
Threadersteller
Dabei seit: 07.10.2006
Ort: Aachen
Alter: 34
Geschlecht:
|
Verfasst Mo 09.10.2006 11:12
Titel
|
|
|
oh, das war also der fehler,
danke zelur jetzt tickt der zeiger auch einigermaßen richtig.
wegen der php-time, wie raumwurm schon sagt, bei mir ist es ein browsergame und da ist es wichtig das da keiner mit seiner zeit cheatet etc..
|
|
|
|
|
|
|
|
Ähnliche Themen |
JavaSript einbauen!
JavaSript gesucht!
wechselnder text mit JavaSript
HTML TAG als Text in Javasript
[JavaScript] Countdown
Countdown Text
|
|