Dennis W.: Countdown mit PHP und Javascript

Hallo,

ich verzweifle an einem code. seid tagen versuch ich das ding zum laufen zu bringen aber irgendwie schaff ich es nicht!!

der Code:
<HEAD>
<?php
$now = date("M d H:i:s ");
$now .= "UTC";
$now .= date("O Y");
 ?>
<script language="JavaScript">

<!-- Beginn
function getTime()
{
now = new Date("<?php echo $now; ?>"); <--### wenn ich das in den klammern weglasse funktioniert es aber er nimmt dann das lokale datum und die lokale uhrzeit! ###

//ENTER BELOW THE DATE YOU WISH TO COUNTDOWN TO
later = new Date("Jan 1 2007 0:00:01");

if(!document.all && !document.getElementById)
 {
  return;
 }

days = (later - now) / 1000 / 60 / 60 / 24;
daysRound = Math.floor(days);
hours = (later - now) / 1000 / 60 / 60 - (24 * daysRound);
hoursRound = Math.floor(hours);
minutes = (later - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
minutesRound = Math.floor(minutes);
seconds = (later - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound);
secondsRound = Math.round(seconds);

if(daysRound<=0)
 {
  daysRound = "";
 }
 else
 {
  daysRound = daysRound + ":";
 }

if(hoursRound<=9)
 {
  hoursRound = "0" + hoursRound;
 }
 if(minutesRound<=9)
 {
  minutesRound = "0" + minutesRound;
 }
 if(secondsRound<=9)
 {
  secondsRound = "0" + secondsRound;
 }

anzeige = daysRound + "" + hoursRound + ":" + minutesRound + ":" + secondsRound;
 if(document.getElementById)
 {
  document.getElementById("Uhrzeit").innerHTML = anzeige
 }
 else if(document.all)
 {
  Uhrzeit.innerHTML = anzeige;
 }
timeout = window.setTimeout("getTime()", 1000);
}
//  End -->
</script>
<noscript>
<h1>JavaScript-deaktiviert</h1>

<p>Um den vollen Funktionsumfang dieser Website nutzen zu können,
müssen Sie JavaScript in Ihrem Browser aktivieren ...
</noscript>
</HEAD>

<BODY onLoad="getTime();">
 <span id="Uhrzeit"></span>
</body>

ich möchte das er die Serverzeit nimmt aber irgendwie funktioniert es nur mit den lokalen daten (hab die stelle makiert)!
was ist an diesem code falsch?

danke schom im vorraus!!!
MFG
Dennis

  1. echo $begrüßung;

    <?php
    $now = date("M d H:i:s ");
    $now .= "UTC";
    $now .= date("O Y");

    Wie sieht denn der String aus, der hier erzeugt wird,

    <script language="JavaScript">
    now = new Date("<?php echo $now; ?>");

    und ist dieser String ein erlaubtes Argument für den Date-Konstruktor?

    echo "$verabschiedung $name";

    1. Hallo,
      danke erstma für die fixe antwort..

      Wie sieht denn der String aus, der hier erzeugt wird,

      es wird dieser string erzeugt: Jan 10 2006 11:37:56 UTC+0100 2006
         was ist den daran falsch?

      und ist dieser String ein erlaubtes Argument für den Date-Konstruktor?

      ich meine ja, oder etwa nicht?? wenn nicht wie sollte er den aussehen?? hab es auch schon mit anderen ausprobiert funktionierte auch nicht!! also es wird nur statisch angezeigt aber es läuft die zeit nicht runter...!! :S

      mfg
      dennis

      1. Hallo!

        Hallo,
        danke erstma für die fixe antwort..

        Wie sieht denn der String aus, der hier erzeugt wird,

        es wird dieser string erzeugt: Jan 10 2006 11:37:56 UTC+0100 2006
           was ist den daran falsch?

        Schau dir mal die Doku zum Date Objekt an. Dann wird dir hoffentlich klar, was da nicht stimmt.

        mfg
          frafu

        1. Hallo

          Schau dir mal die Doku zum Date Objekt an. Dann wird dir hoffentlich klar, was da nicht stimmt.

          ok hab ich gemacht und hab jetzt ein anderes Datums format! hat trotzdem nicht funktioniert! und hab dann alle varianten ausprobiert aber es geht irgendwie nicht! oder gucke ich wieder an einem falschen ende? mmmh...!!!

          also der string sieht im moment wie folgt aus: $now = date("F d, Y H:i:s");

          ich muss dazu noch sagen das ich mit javascript gerade erst angefangen hab deswegen nimmt rücksicht!! ;)

          danke

          mfg
          dennis

          1. hi,

            also der string sieht im moment wie folgt aus: $now = date("F d, Y H:i:s");

            Und das ergibt welche _Ausgabe_ im _Quellcode_, der dann an den Browser ausgeliefert wird?

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
          2. echo $begrüßung;

            ok hab ich gemacht und hab jetzt ein anderes Datums format! hat trotzdem nicht funktioniert!

            Definiere bitte "funktioniert nicht". Womit hast du getestet, was für ein Ergebnis bzw. welche Fehlermeldung bekommst du?

            echo "$verabschiedung $name";

            1. halloo..,

              Definiere bitte "funktioniert nicht". Womit hast du getestet, was für ein Ergebnis bzw. welche Fehlermeldung bekommst du?

              so also es soll ja ein countdown sein... also runterzählen jede sekunde...!! doch er zählt nicht runter, es bleibt statisch!!
              also keine fehlermeldung oder so... es steht da nur die ganze zeit der aktuelle wert als man die seite aufgerufen hat!!!
              aber warum??

              danke

              mfg
              dennis

              1. echo $begrüßung;

                so also es soll ja ein countdown sein... also runterzählen jede sekunde...!! doch er zählt nicht runter, es bleibt statisch!!
                also keine fehlermeldung oder so... es steht da nur die ganze zeit der aktuelle wert als man die seite aufgerufen hat!!!
                aber warum??

                Das ist so, weil du immer wieder die Differenz von "now" und "later" berechnest. "later" ist ein feststehender Wert, der in deinem Script definiert ist.

                "now" ist es auch ein feststehender Wert, der "damals", als das PHP die Seite erzeugt hat, auf die Serverzeit gesetzt wurde.

                echo "$verabschiedung $name";

                1. hi,

                  Das ist so, weil du immer wieder die Differenz von "now" und "later" berechnest. "later" ist ein feststehender Wert, der in deinem Script definiert ist.

                  "now" ist es auch ein feststehender Wert, der "damals", als das PHP die Seite erzeugt hat, auf die Serverzeit gesetzt wurde.

                  achso ja und wie kann ich jetzt jede sekunde mir die aktuelle Serverzeit "abholen"??

                  dank
                  mfg
                  dennis

                  1. hi,

                    also habs jetzt selbst rausgefunden da fehlt im code eine zeile und zwar diese:

                    now.setSeconds(now.getSeconds() + 1);

                    trotzdem danke an alle!!
                    mfg
                    dennis

                  2. Tag Dennis.

                    wie kann ich jetzt jede sekunde mir die aktuelle Serverzeit "abholen"??

                    Um Gottes Willen! Willst du jede Sekunde einen Serverrequest absetzen? Nene, junger Freund, davon lass mal die Finger.

                    Was du möchtest, kannst du auch mit Javascript ganz allein lösen, eine Sekunde ist eine Sekunde, egal ob auf dem Server oder dem Client. Errechne also die Differenz jede Sekunde neu und aktualisiere die Anzeige. Mal so dahingerotzt:

                    Javascript im Head:

                    var target = new Date("Jan 1 2007 0:00:01");  
                    function aktualisiere() {  
                      now = new Date();  
                      var dfr = Math.floor((target - now)/1000);  
                      document.getElementById("tick").innerHTML = dfr+" Sekunden bis Buffalo";  
                      window.setTimeout("aktualisiere()", 1000);  
                    }
                    

                    HTML-Code:

                    <body onload="aktualisiere()">  
                    <p id="tick"></p>
                    

                    Viel Spaß!

                    Siechfred

  2. Hallo Dennis

    <noscript>
    <h1>JavaScript-deaktiviert</h1>

    <p>Um den vollen Funktionsumfang dieser Website nutzen zu können,
    müssen Sie JavaScript in Ihrem Browser aktivieren ...
    </noscript>
    </HEAD>

    auch wenn es mit dem eigentlichen Problem nicht soviel zu tun hat, wollte ich nur kurz anmerken, dass der noscript Bereich in den body gehört, nicht in den head. Ich hoffe, dass dir die anderen im restlichen Thread weiterhelfen können.

    So, genug Korinthen ge...

    Liebe Grüße mbr

    1. hi,

      auch wenn es mit dem eigentlichen Problem nicht soviel zu tun hat, wollte ich nur kurz anmerken, dass der noscript Bereich in den body gehört, nicht in den head.

      Auch wenn ein <p> nichts im Head zu suchen hätte, so "hasse" ich diese Tatsache doch ein wenig - mit noscript im Head hätte man eine so schön einfache Möglichkeit, für Clients ohne Javascript ein alternatives bzw. zusätzliches Stylesheet per <link> einzubinden ... *träum*

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }