Probleme mit new Date()

loddarmattheus

Erfahrenes Mitglied
Hallo,
gestern fand ich dieses Script, welches für meine Zwecke schon gut geeignet ist:
Code:
<html>
  <head>
    <title>Datum-Countdown mit JavaScript</title>

    <script language="JavaScript">
      // Ziel-Datum in MEZ
      var jahr=2222, monat=2, tag=22, stunde=22, minute=22, sekunde=22;
      var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);

      function countdown() {
        startDatum=new Date(); // Aktuelles Datum

        // Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
        if(startDatum<zielDatum)  {

          var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;

          // Jahre
          while(startDatum<zielDatum) {
            jahre++;
            startDatum.setFullYear(startDatum.getFullYear()+1);
          }
          startDatum.setFullYear(startDatum.getFullYear()-1);
          jahre--;

          // Monate
          while(startDatum<zielDatum) {
            monate++;
            startDatum.setMonth(startDatum.getMonth()+1);
          }
          startDatum.setMonth(startDatum.getMonth()-1);
          monate--;

          // Tage
          while(startDatum.getTime()+(24*60*60*1000)<zielDatum) {
            tage++;
            startDatum.setTime(startDatum.getTime()+(24*60*60*1000));
          }

          // Stunden
          stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
          startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);

          // Minuten
          minuten=Math.floor((zielDatum-startDatum)/(60*1000));
          startDatum.setTime(startDatum.getTime()+minuten*60*1000);

          // Sekunden
          sekunden=Math.floor((zielDatum-startDatum)/1000);

          // Anzeige formatieren
          (jahre!=1)?jahre=jahre+" Jahre,  ":jahre=jahre+" Jahr,  ";
          (monate!=1)?monate=monate+" Monate,  ":monate=monate+" Monat,  ";
          (tage!=1)?tage=tage+" Tage,  ":tage=tage+" Tag,  ";
          (stunden!=1)?stunden=stunden+":":stunden=stunden+" Stunde,  ";
          (minuten!=1)?minuten=minuten+":":minuten=minuten+" Minute  und  ";
          if(sekunden<10) sekunden="0"+sekunden;
          (sekunden!=1)?sekunden=sekunden+"":sekunden=sekunden+" Sekunde";

			document.getElementById('c2').innerHTML = stunden +  minuten + sekunden;

          setTimeout('countdown()',200);
        }
        // Anderenfalls alles auf Null setzen
        else document.countdownform.value=
            "0 Jahre,  0 Monate,  0 Tage,  0 Stunden,  0 Minuten  und  00 Sekunden";
      }
    </script>
  </head>

  <body onload="countdown()">
	<div align=center>
	 		<SPAN id=c2 style="FONT: bold 14px arial; COLOR: red;"></SPAN><br> 
	</div>    
  </body>

</html>

Es zählt auch schön bis zum Zieldatum runter. Allerdings wenn ich versuche, auch das Startdatum mit Daten aus meiner MySQL zu füttern, versagt es den Dienst. Er zählt nicht weiter.

PHP:
$timestamp = "March 10, 1998 22:48:00";
....
startDatum = new Date('<?php echo $timestamp ?>');

Ich nehme an, das hängt irgendwie mit dem

Code:
startDatum.setFullYear(startDatum.getFullYear()+1); 
....
usw.

zusammen. Da ich aber nicht der hellste in Sachen javascript bin, wäre ich für jeden Hinweis dankbar.
 
Zurück