sich selbst aktualisierende Uhr

Hi.

Ich habe in einem Bereich meiner Seite eine Uhr mittels der Date-Function realisiert.
Nun gibt es ja die Möglichkeit per JavaScript oder MetaTag Funktionen bzw. ganze Seiten neuzuladen. Ich bräuchte nun aber eine Funktion in PHP die das übernimmt.
Hab zwar schon diverse Foren/Seiten durch, konnte bisher aber nichts gescheites finden. Weiß jemand Rat, oder bleibt mir nichts anderes übrig, als mit JavaScript eine Funktion zu schreiben, die wiederrum die PHP-Funktion aufruft und das ganze dann jede Sekunde? -.-

Vielen Dank schon mal vorab.

Grüße,
xuxu
 
Original von xuxu
Hi.
Ich habe in einem Bereich meiner Seite eine Uhr mittels der Date-Function realisiert.
würde ich immermit js machen
Nun gibt es ja die Möglichkeit per JavaScript oder MetaTag Funktionen bzw. ganze Seiten neuzuladen. Ich bräuchte nun aber eine Funktion in PHP die das übernimmt.
So etwas gibt es nicht, da PHP eine serverseitige Sprache ist.
Was genau willst du den machen die Uhr die jede Sekunde aktualisiert wird.
Dann mit JS würd ichs machen.
Weiß jemand Rat, oder bleibt mir nichts anderes übrig, als mit JavaScript eine Funktion zu schreiben, die wiederrum die PHP-Funktion aufruft und das ganze dann jede Sekunde? -.-
JS und PHP können nicht direkt miteinanderkommunizieren also du kannst mit js keine PHP funktion aufrufen eine möglichkeit wäre mit js formulare an PHP scripts zu schicken sekundlich finde ich das aber sehr Rechen intensive.

Hoffe konnte helfen.
 
JS und PHP können nicht direkt miteinanderkommunizieren also du kannst mit js keine PHP funktion aufrufen...

Wieso sollte das nicht gehen? Kann man in JS kein php öffnen und von dort aus die Funktion aufrufen? Dass es clientseitig ist, stört nicht weiter. Die Uhr soll zum einen für den Benutzer da sein (Die Threads sind sehr zeitabhängig) und zum anderen php-routienen aufrufen zur Datenbankreorganisation.. Ist dann zwar clientlastig, aber da die routienen eher klein sind, stört`s nicht weiter.

Trotzdem vielen Dank für Deine Antwort(en) :)
 
Original von xuxu
Wieso sollte das nicht gehen? Kann man in JS kein php öffnen und von dort aus die Funktion aufrufen?
du kannst mit JS nur PHP-Scripte als Fenster öffnen.
Und du kannst Formualre an PHP-Skripte schicken.
Aber sowas geht nicht falls du das meinst:

Code:
<script language="javascript">
PHPfunktion ();
</script>

Ich würde es dann somachen, wenn du wirkliche jede Sekunde aktualiesieren willst.

Code:
<html>
<head>
<meta http-equiv=\'refresh\' content=\'1; URL=Deine Datei.php\'>
</head>
<body>
<?php
echo date(Parameter);
?>
</body>
</html>
content= Sekunden anzahl

Wegen JS nochmal du kannst doch mit PHP die JS Funktion die Startzeit geben und dann auf der clientseite sie weiterlaufen lassen das wäre dann syncron (ok ein paar millisekunden)
 
Hmm, okay, variablen sind ansprechbar wenn sie außerhalb einer Funktion sind. Muss wohl am global status liegen, hatte sich aber nichts verändert, auch nachdem ich sie innerhalb der Funktion auf global gestellt hatte.. Sonst würde es wohl gehen!
Aber dein letzter Absatz gefällt mir ziemlich gut, werde es wohl so machen.
Vielen Dank auch :).

Grüße,
xuxu
 
wie schon gesagt gibt es sowas für PHP nicht (ausser vieleicht no irgend ne header information mitsenden, das wäre dann aber wieder das selbe wie meta refresh)

Wenn du die Uhr mit PHP machen möchtest kannst du eine kombination verwenden, und zwar:

Date Funktion -> Html Ausgabe & ne Javascript Uhr welche ab der übergebenen Zeit weiterzählt.
 
Danke für die Antworten..
Nun ist das nächste Problem aufgetreten. Ich hab die Uhr jetzt in JS programiert, jedoch schreibt mir die Funktion die aktuelle Uhrzeit untereinander anstatt Sie an die selbe Stelle zu schreiben. Ich wette, es ist ein total simpler Fehler, aber ich finde ihn einfach nicht. Weiß jemand Rat?

Code:
<?php
  $time = getdate();  
  $jahr = substr($time['year'], 2);
?>
<html>
<head>
<script type="text/javascript">
  var time = new Array();
  time['tag'] = <?php echo($time['mday']); ?>;
  time['monat'] = <?php echo($time['mon']); ?>;
  time['jahr'] = <?php echo($jahr); ?>;
  time['std'] = <?php echo($time['hours']); ?>;
  time['min'] = <?php echo($time['minutes']); ?>;
  time['sec'] = <?php echo($time['seconds']); ?>;
  
  var name = new Array('tag','monat','jahr','std','min','sec');
  function zeit()
  { 
    time['sec']++;
    if(time['sec']>59)
    {
      time['sec']=0;
      time['min']++;
    }
    
    if(time['min']>59)
    {
      time['min']=0;
      time['std']++;
    }
    
    if(time['std']>23)
    {
      time['std']=0;
      time['tag']++;
    }
    
    var muell = "";
    var reg =/\S\S/;
    
    for(var i=0; i<name.length; i++)
    {
      muell = time[name[i]];
      
      if(reg.exec(muell) == null)
      {
        time[name[i]] = "0" + time[name[i]];
      }
    }
    
    document.write("<html><body><table><tr><td>");
    document.write(time['tag'] + "." + time['monat'] + "." + time['jahr']);
    document.write("</td></tr><tr><td>");
    document.write(time['std'] + ":" + time['min'] + ":" + time['sec']);
    document.write("</td></tr></table></body></html>");
    setTimeout("zeit()",1000);
  }
</script>
</head>
<body onload="zeit();">
</body>
</html>

Vielen Dank im Voraus.
Grüße,
xuxu
 
document.write("<html><body><table><tr><td>");
document.write(time['tag'] + "." + time['monat'] + "." + time['jahr']);
document.write("</td></tr><tr><td>");
document.write(time['std'] + ":" + time['min'] + ":" + time['sec']);
document.write("</td></tr></table></body></html>");

du könntest z.b. einfach ein textfeld ohne Rahmen einbauen und jedes mal den value-wert mit der uhrzeit füllen.
Ach ja du solltest in der document.write funktion keine body und so schreiben hast du nämlich schon^^.
 
Zurück
Oben