kostenloser Webspace werbefrei: lima-city


falsches Datum in Javascript ?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    digg

    digg hat kostenlosen Webspace.

    Hallo

    ich habe ein kleines JS um tag/aktuelles datum">aktuelles Datum und Uhrzeit anzuzeigen,

    leider bekomme ich im Datum bei Tag und bei Monat immer falsche Zahlen
    es wird immer aktueller Tag minus 1 und aktueller Monat minus 1 angezeigt ??

    also heute ist: 04.07.2012 aber in Ausgabe steht : 03.06.2012

    hier der Code:
    <html>
    <head>
    <title>Datum und Uhr</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <script type="text/javascript">
    <!--
    function start_uhr() {
    	show_uhr();
    	window.setInterval("show_uhr()", 1000);
    }
    
    function show_uhr() {
    
    var now = new Date();
    
    var year = now.getFullYear();
    var month = now.getMonth();
    var day = now.getDay();
    
    var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
    var Monattext = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
    
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();
    
    var thetime = "";
    
    	thetime += "Datum: "; 
    	thetime += " " + Wochentag[day] + " "; 
    	thetime += (day < 10) ? "0" + day + "." : day + ".";
    	thetime += (month < 10) ? "0" + month + "." : month + ".";
    	thetime += " " + Monattext[month] + " "; 
    	thetime += year + " ";
    	
    	thetime += "Zeit: "; 
    	thetime += (hours < 10) ? "0" + hours + ":" : hours + ":";
    	thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":";
    	thetime += (seconds < 10) ? "0" + seconds : seconds;
    	thetime += " Uhr"; 
    
    	element = document.getElementById("datumausgabe");
    	element.innerHTML = thetime;
    }
    
    //-->
    </script>
    
    </head>
    
    <body onload="start_uhr();">
      <span id="datumausgabe"></span>
    </body>
    
    </html>



    warum bekomme ich im Datum am 04.07.2012 als Ausgabe: 03.06.2012
    also bei Tag und Monat sind die Zahlen jeweil um 1 zu wenig (in der Vergangenheit)
    aber der Wochentag und Monattext sind richtig ?!
    ?

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Ich hab mir den Sourcecode jetzt nicht genau angeschaut, aber wenn das um eins nach hinten verschoben ist, warum machst du nicht an passender Stelle einfach "day + 1" statt nur "day"?

    Nachtrag, beispielsweise so:
    var thetime = "";
     
        thetime += "Datum: "; 
        thetime += " " + Wochentag[day] + " "; 
        thetime += (day < 9) ? "0" + (day+1) + "." : (day+1) + ".";
        thetime += (month < 9) ? "0" + (month+1) + "." : (month+1) + ".";
        thetime += " " + Monattext[month] + " "; 
        thetime += year + " ";


    Beitrag zuletzt geändert: 4.7.2012 12:53:43 von nicoa
  4. Autor dieses Themas

    digg

    digg hat kostenlosen Webspace.

    Hallo

    ja, das ist schon klar, das ich einfach mit +1 bei month und day reparieren kann

    var month = (now.getMonth()+1);
    var day = (now.getDay()+1);


    wenn ich das mache, dann stimmt zwar das Datum als Zahl,
    aber der Text für Monat und Tag stimmt dann nicht mehr,

    also füge ich ein Dummy-Element ein, weil Monat 0 und Tag 0 gibt es ja nicht

    var Wochentag = new Array("x", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
    var Monattext = new Array("x", "Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");


    aber eigentlich ist das so ja auch Quatsch,
    denn welchen Text soll sich das script am 24,07. holen,
    es gibt ja kein 24tes Element in Wochentag ???

    also gibt mir getDay() nicht den Tag als Zahlenwert, sondern den Wochentag
    beginnend mit 0 = Sonntag bis 6 = Samstag ???

    ...oOo .. steht ja auch in der DOKU: getDay() (Wochentag ermitteln)

    ist halt auch grad Zufall, dass der 04.07.2012 ein Mittwoch ist und somit 3 als Wochentag ergibt

    wie komme ich denn an den aktuellen Tag im Monat (als Zahlenwert, also z.B. 24) ?

    bei Monat ist es noch "machbar" mit dem Array Wert (0 = Januar, 1 = Februar, etc)
    aber bei Wochentage gehts ja nur bis 7 (bzw. 0 bis 6), ich brauche aber Tag im Monat als Zahl

    oder wie sonst hier das Datum und Uhrzeit formatiert ausgeben ?

    Danke
  5. So, hab jetzt mal nachgeschaut, siehe hier: http://de.selfhtml.org/javascript/objekte/date.htm.

    Du kannst das einfach machen per:
    var jetzt = new Date();
    var Tag = jetzt.getDate();


    Beitrag zuletzt geändert: 4.7.2012 12:53:16 von nicoa
  6. Autor dieses Themas

    digg

    digg hat kostenlosen Webspace.

    oh ja, Danke

    bei getDate() habe ich nicht geschaut, weil ich von PHP gewohnt bin, das date() das "ganze" Datum behandelt, dass man in Javascript mit getDate() den Tag im Monat bekommt, ist die Lösung, Danke !

    hier nochmal der verbesserte Code:

    <html>
    <head>
    <title>Datum und Uhr</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <script type="text/javascript">
    <!--
    function start_uhr() {
    	show_uhr();
    	window.setInterval("show_uhr()", 1000);
    }
    
    function show_uhr() {
    
    var now = new Date();
    
    var year   = now.getFullYear();  // Jahreszahl 4-Stellig
    var month  = now.getMonth();     // Array-Wert Monat 0 bis 11
    var zmonth = (month+1);          // Zahlenwert Monat 1 bis 12
    var wday   = now.getDay();       // Array-Wert Wochentag 0 bis 6
    var day    = now.getDate();      // Zahlenwert Tag im Monat 1 bis 31
    
    
    var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
    var Monattext = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
    
    var hours   = now.getHours();    // Zahlenwert Stunden 0 bis 23
    var minutes = now.getMinutes();  // Zahlenwert Minuten 0 bis 59
    var seconds = now.getSeconds();  // Zahlenwert Sekunden 0 bis 59
    
    var thetime = "";
    
    	thetime += "Datum: "; 
    	thetime += "" + Wochentag[wday] + ", "; 
    	thetime += (day < 10) ? "0" + day + "." : day + ".";
    	thetime += (zmonth < 10) ? "0" + zmonth + "." : zmonth + ".";
    	thetime += " (" + Monattext[month] + ") "; 
    	thetime += year + " ";
    	
    	thetime += "... Zeit: "; 
    	thetime += (hours < 10) ? "0" + hours + ":" : hours + ":";
    	thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":";
    	thetime += (seconds < 10) ? "0" + seconds : seconds;
    	thetime += " Uhr"; 
    
    	element = document.getElementById("datumausgabe");
    	element.innerHTML = thetime;
    }
    
    //-->
    </script>
    
    
    <style type="text/css">
    <!--
    #datumausgabe { 
      font-family: "Courier New", Courier, mono; 
      font-size: 14px; 
      color:#003366;
    }
    -->
    </style>
    
    </head>
    
    <body onload="start_uhr();">
     <span id="datumausgabe"></span>
    </body>
    
    </html>


    gibt es noch eine andere Möglichkeit das Ding ohne
    <body onload="start_uhr();">
    zu starten ?

    nochwas:
    per JS wird ja mit new Date() das Datum vom Client genommen.

    wie kann ich als Datum die Server-Zeit nehmen ?
    bzw. gibt es eine (externe) Atom-Uhr, von der man das "genaue" aktuelle Datum holen kann ?
    so, dass immer die richtige Uhrzeit angezeigt wird, unabhängig von Client- oder Server-Zeit?

    Danke!

    Beitrag zuletzt geändert: 4.7.2012 13:14:58 von digg
  7. digg schrieb:

    gibt es noch eine andere Möglichkeit das Ding ohne
    <body onload="start_uhr();">
    zu starten ?

    Jup, schau dir mal das hier an: http://de.selfhtml.org/javascript/sprache/eventhandler.htm

    Und zur Serverzeit: Soweit ich weiss, ginge das höchstens mit Ajax oder so, und dann würde ich eher komplett PHP statt JS bevorzugen an deiner Stelle.
    Sowieso, wenn das beim Laden der Seite erscheint und nicht eventgebunden, kannste das sowieso per PHP anfordern.

    Beitrag zuletzt geändert: 4.7.2012 13:24:29 von nicoa
  8. 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!