Unixtime Live ausgeben


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Lukas03

Grünschnabel
Hallo Ihr lieben,

hab ein kleines anliegen, und zwar möchte ich ein Livedatum + Uhrzeit ausgeben lassen.

Ich habe ein "dropdown formular" basiert auf HTML & PHP dort kann man zwischen 5 Uhrzeiten wählen, diese werden dann live in der Seite angezeigt (Funktioniert auch ;) )

Die Uhrzeit wird in PHP mittels z. B. time() +3000 berechnet.

Hier der Code:

Code:
 <script>
    function CheckAuswahl () {
      for (i = 0; i < document.Testform.Auswahl.length; ++i)
        if (document.Testform.Auswahl.options[i].selected == true)

        
          document.getElementById('info').innerHTML = (document.Testform.Auswahl.options[i].value);
        
     }
  </script>


Jetzt möchte ich gerne, dass die Uhrzeit live mit läuft, ohne die Seite mit F5 zu aktualisieren.

Wo muss ich was einbauen?
Habe bereits 2 Stunden gesucht o_O

Würde mich über Antworten Freuen :)


LG Lukas
 

Technipion

Erfahrenes Mitglied
Habe bereits 2 Stunden gesucht
Öhm, okay :oops:
Ich hab bei Google "javascript clock" eingegeben und das hier war der erste Treffer:


HTML:
<!DOCTYPE html>
<html>
<head>
<script>
function startTime() {
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds();
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('txt').innerHTML =
  h + ":" + m + ":" + s;
  var t = setTimeout(startTime, 500);
}
function checkTime(i) {
  if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
  return i;
}
</script>
</head>

<body onload="startTime()">

<div id="txt"></div>

</body>
</html>

Das kannst du ja denke ich nach deinen eigenen Wünschen abwandeln. Falls du irgendwas eigenes machen willst (eigene Berechnungen in PHP) könntest du auch AJAX benutzen um dir alle (paar) Sekunde(n) einen Wert zu holen?

Gruß Technipion
 

Lukas03

Grünschnabel
@Technipion Danke Ersteinmal für die mühe, habe gedacht es müsste anders erstellt werden...
Wo und wie müsste ich den mein Script einbauen.
Sorry bin blutiger Anfänger ^^

PHP:
<select name="Auswahl" onChange="CheckAuswahl()">
      <option value="<?php $var = time () + 4311; $datum = date("d.m.Y - H:i:s", $var); echo $datum; ?>
 

Sempervivum

Erfahrenes Mitglied
Verstehe ich das richtig, Du willst auf die aktuelle Zeit eine bestimmte Spanne aufaddieren, z. B. 3s in deinem Beispiel oben? Dann brauchst Du den Umweg über PHP nicht, nur den Wert aus dem value-Attribut auslesen (das hast Du ja in deinem Code oben schon), zyklisch die aktuelle Zeit ermitteln und die Spanne aufaddieren. Mit der Basis des Codes von W3Schools, nur besser setInterval verwenden.
 

Lukas03

Grünschnabel
Verstehe ich das richtig, Du willst auf die aktuelle Zeit eine bestimmte Spanne aufaddieren, z. B. 3s in deinem Beispiel oben? Dann brauchst Du den Umweg über PHP nicht, nur den Wert aus dem value-Attribut auslesen (das hast Du ja in deinem Code oben schon), zyklisch die aktuelle Zeit ermitteln und die Spanne aufaddieren. Mit der Basis des Codes von W3Schools, nur besser setInterval verwenden.

Ja genau, jedoch ändern sich die Zeiten etwas deshalb in php sind nicht 3 s sondern z. B 3400 sec
 

Sempervivum

Erfahrenes Mitglied
Du kannst sie ja gleich in das value-Attribut der Option eintragen:
Code:
<option value="<?php $delta = 4311; $var = time () + $delta; $datum = date("d.m.Y - H:i:s", $var); echo $delta . '">' . $datum . '</option>'; ?>
 
Zuletzt bearbeitet:

Lukas03

Grünschnabel
Du kannst sie ja gleich in das value-Attribut der Option eintragen:
Code:
<option value="<?php $delta = 4311; $var = time () + $delta; $datum = date("d.m.Y - H:i:s", $var); echo $delta . '">' . $datum . '</option>'; ?>

So geht es natürlich auch, jedoch wird hier auch nicht die neue Zukunftszeit live mitgezählt :-/
Javascript:
  var today = new Date()+4311;

Funktioniert leider nicht kann man dort nicht einfach ein Php "unix timestamp" einfügen?
 
Zuletzt bearbeitet:

Sempervivum

Erfahrenes Mitglied
So funktioniert es nicht, aber "geht nicht gibts nicht". Dies sollte gehen:
var nowPlus = new Date(Date.now() + 4311 * 1000);
 

ComFreek

Mod | @comfreek
Moderator
Du solltest die Zeiten entweder nur serverseitig oder nur clientseitig dir geben lassen, denn die Zeiten beider Systeme können sich unterscheiden.
Denkbär wäre auch, dass du die anfängliche Zeit dir per PHP geben lässt und dann mit JS nur noch relativ hochzählst, aber keine neue (absolute) Zeit per JS anfragst.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge