mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 12:32 Benutzername: Passwort: Auto-Login

Thema: JavaSript Countdown tickt nicht vom 08.10.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> JavaSript Countdown tickt nicht
Autor Nachricht
Omarius
Threadersteller

Dabei seit: 07.10.2006
Ort: Aachen
Alter: 34
Geschlecht: Männlich
Verfasst So 08.10.2006 17:01
Titel

JavaSript Countdown tickt nicht

Antworten mit Zitat Zum Seitenanfang

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&auml;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
  View user's profile Private Nachricht senden
Zelur
Account gelöscht


Ort: -

Verfasst So 08.10.2006 19:42
Titel

Antworten mit Zitat Zum Seitenanfang

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 * Mmmh, lecker... *
 
Anzeige
Anzeige
Zelur
Account gelöscht


Ort: -

Verfasst So 08.10.2006 20:20
Titel

Antworten mit Zitat Zum Seitenanfang

Fortsetzung:
Hier habe ich eine Mögliche Ausführung des Scripts, das auch ohne PHP auskommt. (warum PHP nehmen, wenns auch einfacher geht * Keine Ahnung... *)
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&auml;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: Männlich
Verfasst So 08.10.2006 20:51
Titel

Antworten mit Zitat Zum Seitenanfang

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 * Keine Ahnung... *)

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
  View user's profile Private Nachricht senden
Omarius
Threadersteller

Dabei seit: 07.10.2006
Ort: Aachen
Alter: 34
Geschlecht: Männlich
Verfasst Mo 09.10.2006 11:12
Titel

Antworten mit Zitat Zum Seitenanfang

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..
  View user's profile Private Nachricht senden
 
Ähnliche Themen JavaSript einbauen!
JavaSript gesucht!
wechselnder text mit JavaSript
HTML TAG als Text in Javasript
[JavaScript] Countdown
Countdown Text
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.