kostenloser Webspace werbefrei: lima-city


Und wieder geht was nich: window.setInterval

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    mxp

    mxp hat kostenlosen Webspace.

    Hi, diesmal funktioniert "window.setInterval" nicht!

    Ich wollte eine tickende Uhr tag/mache">machen und zwar aus der Uhrzeit, die ich mit PHP erstellt habe.

    Code:

    <?php
    $cz = time();
    echo $cz;
    echo "<br>";
    ?>
    <div id="zeit">--:--:--</div>
    <script language="JavaScript">
    <!--
    function changetime() {
    	<?php
    	$cz = $cz + 1;
    	$fz = date("H:i:s", $cz);
    	?>
    	document.all.zeit.innerHTML = "<?php echo $cz; ?>";
    }
    window.setInterval("changetime()", 1000);
    -->
    </script>


    edit: ich habe vergessen zu sagen was nicht funkt: es ändert die uhrzeit nur einmal und nicht als endlosschleife, hier link: http://scriptmaker.sc.funpic.de/%dcbung%20macht%20den%20Meister/Javascript/tick.php

    Beitrag geaendert: 2.4.2007 17:58:38 von mxp
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e**6


    Hi, diesmal funktioniert "window.setInterval" nicht!

    Ich wollte eine tickende Uhr machen und zwar aus der Uhrzeit, die ich mit PHP erstellt habe.

    Code:

    <?php
    $cz = time();
    echo $cz;
    echo "<br>";
    ?>
    <div id="zeit">--:--:--</div>
    <script language="JavaScript">
    <!--
    function changetime() {
    	<?php
    	$cz = $cz + 1;
    	$fz = date("H:i:s", $cz);
    	?>
    	document.all.zeit.innerHTML = "<?php echo $cz; ?>";
    }
    window.setInterval("changetime()", 1000);
    -->
    </script>


    edit: ich habe vergessen zu sagen was nicht funkt: es ändert die uhrzeit nur einmal und nicht als endlosschleife, hier link: http://scriptmaker.sc.funpic.de/%dcbung%20macht%20den%20Meister/Javascript/tick.php

    Beitrag geaendert: 2.4.2007 17:58:38 von mxp


    irgendwie wird dad Ding nicht richtig gestartet es wird lediglich die systemzeit angezeigt.

    Habe hier mal was was ich irgendwann mal gebastelt hatte kanste ja mal testen und entsprechend umbasteln

    <script language=javaScript>
    <!--
    window.setTimeout("ZeitAnzeigen()",1000);
    Wochentagname = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
    
    function ZeitAnzeigen()
    {
     var Jetzt = new Date(); 
     var Tag = Jetzt.getDate();
     var Monat = Jetzt.getMonth() + 1; 
     var msJahr = Jetzt.getYear();
     var nsJahr = Jetzt.getYear() + 1900;
     var Stunden = Jetzt.getHours(); 
     var Minuten = Jetzt.getMinutes();
     var Sekunden = Jetzt.getSeconds(); 
     var WoTag = Jetzt.getDay();
     var Vortag  = ((Tag < 10) ? "0" : "");
     var Vormon  = ((Monat < 10) ? ".0" : ".");
     var Vorstd  = ((Stunden < 10) ? "0" : "");
     var Vormin  = ((Minuten < 10) ? ":0" : ":");
     var Vorsek  = ((Sekunden < 10) ? ":0" : ":");
     var msDatum = Vortag + Tag + Vormon + Monat  + "." + msJahr;
     var nsDatum = Vortag + Tag + Vormon + Monat  + "." + nsJahr;
     var Uhrzeit = Vorstd + Stunden + Vormin + Minuten + Vorsek + Sekunden;
     var msJetzt = msDatum + "  " + Wochentagname[WoTag] + "  " + Uhrzeit;
     var nsJetzt = nsDatum + "  " + Wochentagname[WoTag] + "  " + Uhrzeit;
    
    if(document.all) {
    	noshade.innerHTML=msJetzt
    	shade.innerHTML=msJetzt
    }
    if(document.layers) {
    	document.shade.document.write('<div id="shade" style="position:absolute;visibility:visible;font-family:Century Gothic,Arial;color:silver;font-size:80px;top:105px;left:16px">'+nsJetzt+'</div>')
    	document.noshade.document.write('<div id="noshade" style="position:absolute;visibility:visible;font-family:Century Gothic,Arial;color:gray;font-size:80px;top:100px;left:10px">'+nsJetzt+'</div>')
    	document.close()
    	}
    	var timer=setTimeout("ZeitAnzeigen()",1000)
    }
    //-->
    </script>
    <div id="shade" style="position:absolute;visibility:visible;font-family:Century Gothic,Arial;color:silver;font-size:14px;"></div>
    <div id="noshade" style="position:absolute;visibility:visible;font-family:Century Gothic,Arial;color:gray;font-size:14px;top"></div>
  4. Autor dieses Themas

    mxp

    mxp hat kostenlosen Webspace.

    Das beantwortet nicht meine Frage, ich will die Uhrzeit per PHP erstellen
  5. e**6

    ich vermute mal das kanste nicht mit php es sei denn du machst eine endlosschleife aber das finde ich unsinnig. Hierzu verwendet man meine ich Js
  6. Autor dieses Themas

    mxp

    mxp hat kostenlosen Webspace.

    Ja klar will ich eine Endlosschleife machen, was denn sonst! Denkst du etwa, die Uhrzeit bleibt irgendwann stehen?

    Beitrag geaendert: 2.4.2007 19:26:58 von mxp
  7. b****y


    ich vermute mal das kanste nicht mit php es sei denn du machst eine endlosschleife aber das finde ich unsinnig. Hierzu verwendet man meine ich Js


    Du kannst das zwar mit PHP machen, aner dann brauchst du AJAX bzw. SAJAX. Doch dann entsteht nur völlig unnötiger Traffic durch die Kommunikation zwischen Browser und Server. Aber warum so umständlich machen, wenn es auch einfacher geht? Mit JavaScript ist das überhaupt kein Problem. ef06 hat dir ja schon ein fertiges Script zur Verfügung gestellt.

    Weitere Informationen über JavaScript siehe http://de.selfhtml.org/

    MfG, Bohrty.
  8. e**6

    <meta http-equiv="refresh" content="0; URL=seit.php">
  9. Hallo mxp, du kleiner Scherzbold!

    Wenn du deine Augen ganz weit aufmachst, wirst du feststellen, dass ...

    1.) dein Quellcode sehr wohl auf JavaScript basiert.
    2.) dein Script zwar im Prinzip funktionert,
    3.) aber eben nicht die Uhrzeit anzeigt.

    Du solltest dich mal dringen damit beschäftigen, wie HTTP funktioniert und was
    der Unterschied zwischen serverseitigen und browserseitigen (clientseitigen) Programmen ist.

    Mal in Kurzform:

    Das ist HTTP:
    1. Der Browser sendet eine Anforderung an den Server.
    2. Der Server führt dein PHP-Script aus und sendet dessen Ausgabe an den Browser.

    Das passiert im Browser:
    3. Der Browser empfängt die Ausgabe und stellt sie dar.
    4. In der Ausgabe steckt ein JavaScript, das führt er aus.
    5. Dein Script schreibt regelmäßig PHP-Anweisungen in den HTMl-Quelltext, die man im Browser nicht sieht, weil sie durch die PHP-Tags versteckt sind.

    Schlussfolgerung: Du musst die Ausgabe der Zeit mit JavaScript (als HTML-Code)machen, sonst sieht man nichts. innerHTML ist eine Eigenschaft, die nur im Browser Angezeigtes verändern kann, aber damit kann man keine PHP-Anweisungen auf dem Server ausführen.

    Rein theoretisch müsste dein Browser sogar Fehlermeldungen ausgeben (die JavaScript-Konsole hast du doch sicher an, oder?), denn JavaScript kennt keine PHP-Tags (die Dinger mit den Fragezeichen).
  10. Autor dieses Themas

    mxp

    mxp hat kostenlosen Webspace.

    Und wie soll ich dann beim Browsergame den Countdown machen wann das Gebäude fertig ist?
  11. e**6

    halt mit js!
    wo ist da das Problem?

  12. Und wie soll ich dann beim Browsergame den Countdown machen wann das Gebäude fertig ist?


    Du speicherst serverseitig den Zeitpunkt, wann das Gebäude fertig ist.
    Diesen Zeitpunkt sowie die akutelle Serverzeit übergibst du an ein JavaScript, das clientseitig läuft.
    Das JavaScript berechnet dann die Differenz zwischen Zeitpunkt der Fertigstellung und der übergebenden Serverzeit und lässt dann entsprechend den Countdown clientseitig runterlaufen.
    Auf dem Server findet kein Countdown statt!

    Es wäre doch unnötiger Aufwand, wenn du wirklich jede Sekunde den Counter auf dem Server verringern müsstest. Es ist viel sinnvoller den Zeitpunk der Fertigstellung mit dem aktuellem Zeitpunkt zu vergleichen.

    Beitrag geaendert: 3.4.2007 11:03:26 von bladehunter
  13. Autor dieses Themas

    mxp

    mxp hat kostenlosen Webspace.

    Ja schon klar, ich hab jetzt verstanden, dass das nicht mit PHP gehen kann, da Javascript ja im Browser läuft und PHP am Server läuft.

    Aber eine Frage hätte ich da noch: Ich habe da in PHP jetzt einen Zeitstempel, wann das Gebäude fertig ist (also zum Beispiel 1175593652)...

    und wie mache ich mit javascript diesen zeitstempel zu einem gültigem javascript-format?

    und wie mache ich überhaupt einen javascript countdown?

    mfg mxp
  14. mxp schrieb:
    Aber eine Frage hätte ich da noch: Ich habe da in PHP jetzt einen Zeitstempel,
    wann das Gebäude fertig ist (also zum Beispiel 1175593652)...

    und wie mache ich mit javascript diesen zeitstempel zu einem gültigem javascript-format?



    javascriptzeit=new Date(1175593652*1000);
    http://de.selfhtml.org/javascript/objekte/date.htm
    (entspricht Variante 5)
    in PHP ist die UNIX Zeit in Sekunden angegeben, in JavaScipt in Millisekunden. Daher musst du mit 1000 multiplizieren.


    und wie mache ich überhaupt einen javascript countdown?

    mfg mxp

    Weiter oben im Thread hat ef06 eine Variante gepostet. Du kannst aber auch die Foren-Suche benutzen.

    Beitrag geaendert: 6.4.2007 11:11:11 von bladehunter
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!