mario: Probleme mit einer Uhr

Hallo alle zusammen

ich habe da ein kleines Problem.
Ich möchte eine Uhr auf meiner HP einbauen (ich weiss, ich weiss viele mögen das nicht aber es braucht nunmal eine), welche nicht in einem Rahmen ist.
Der Quelltext:
----------------------------------------------
function DatumZeit()
{
datum   = new Date()
document.getElementById("uhr").innerText=

datum.getDate()
 + '.'
 + (datum.getMonth()+1)
 + '.'
 + datum.getFullYear()
 + '  '
 + datum.getHours()
 + ':'
 + datum.getMinutes()
 + ':'
 + datum.getSeconds()

setTimeout("DatumZeit()",1000)
------------------------------------------------
Jetzt hab ich das Problem das er die Sekunden (und auch alles andere) immer ohne 0 anzeigt. Also: 12:24:1 (anstelle von 12:24:01)
Ich habe scho alles Probiert und nun seid ihr meine letzte Hoffnung.
Irgenwie muss das doch mit:
if(datum.getSeconds() < 10) += '0'+= datum.getSeconds()
gehen?
Aber wie genau?

Danke

Mario

  1. Ich hoffe, diese Tabelle kann dir weiterhelfen

    Format Beschreibung                          Beispiel
      ========================================================
      d      Tag des Monats, zweistellig           03, 28
      j      Tag des Monats                        7, 13
      m      Nummer des Monats, zweistellig        01, 11
      n      Nummer des Monats                     2, 10
      y      Jahr zweistellig                      99, 00
      Y      Jahr vierstellig                      1999, 2001
      H      Stunde im 24-Stunden-Format, zweist.  08, 16
      G      Stunde im 24-Stunden-Format           7, 18
      i      Minuten, zweistellig                  08, 45
      s      Sekunden, zweistellig                 06, 56

    w      Wochentag in Zahlenwert               2, 6

  2. Hier noch ein Beispiel (mit php)

    Um ein Datum inkl. Uhrzeit im Stil von 18.08.2004 - 12:43:00 Uhr auszugeben gibt es zB folgende Schreibweise:
      <?
      $datum = date("d.m.Y",$timestamp);
      $uhrzeit = date("H:i:s",$timestamp);
      echo $datum," - ",$uhrzeit," Uhr";
      ?>

    1. Danke für den Vorschlag aber ich muss zwingerndermassen auf php verziechten.

      Zur Tabelle:
      Tut mir leid aber damit kann ich nicht anfangen. Ihr solltet vielleicht auch wissen das ich noch nicht viel weis Javascripte.

      Trotzdem danke fürs Posten.

      Mario

      Hier noch ein Beispiel (mit php)

      Um ein Datum inkl. Uhrzeit im Stil von 18.08.2004 - 12:43:00 Uhr auszugeben gibt es zB folgende Schreibweise:
        <?
        $datum = date("d.m.Y",$timestamp);
        $uhrzeit = date("H:i:s",$timestamp);
        echo $datum," - ",$uhrzeit," Uhr";
        ?>

      1. Moin,

        jede Menge gute tipps zu Javascript und Datum/Zeit gibt es hier :

        http://developer.irt.org/script/date.htm

        cu mipu

  3. Hallo,

    Jetzt hab ich das Problem das er die Sekunden (und auch alles andere) immer ohne 0 anzeigt. Also: 12:24:1 (anstelle von 12:24:01)
    Irgenwie muss das doch mit:
    if(datum.getSeconds() < 10) += '0'+= datum.getSeconds()
    gehen?
    Aber wie genau?

    Du brauchst einen Ausdruch, der unterschiedliche Werte in Abhängigkeit von einer Bedingsung zurückliefert. Was Du da versuchst, ist eine Programmverzweigung.

    Schau hier: http://de.selfhtml.org/javascript/sprache/bedingt.htm#entweder_oder
    ...

    • (datum.getSeconds() < 10) ? '0' + datum.getSeconds() : datum.getSeconds();
      ...

    Aber versuch doch einfach mal Date.toLocaleString() http://de.selfhtml.org/javascript/objekte/date.htm#to_locale_string.

    viele Grüße

    Axel

    1. Danke für die Vorschläge. date.toLocalString() funktioniert nicht und  (datum.getSeconds() < 10) ? '0' + datum.getSeconds() : datum.getSeconds(); hat ich auch schon. Da liefert er mir zwar die null. Leider aber 1. immer und 2. liefert er dann nur noch die Sekunden.

      1. Hallo,

        Danke für die Vorschläge. date.toLocalString() funktioniert nicht

        date.toLocaleString()
                    ^

        und  (datum.getSeconds() < 10) ? '0' + datum.getSeconds() : datum.getSeconds(); hat ich auch schon. Da liefert er mir zwar die null.
        Leider aber 1. immer

        Nö.

        und 2. liefert er dann nur noch die Sekunden.

        var datum   = new Date()

        var aktZeit = (datum.getDate() < 10) ? '0' + datum.getDate() : datum.getDate().toString();
        aktZeit += ".";
        aktZeit += (datum.getMonth()+1 < 10) ? '0' + (datum.getMonth()+1) : (datum.getMonth()+1).toString();
        aktZeit += ".";
        aktZeit += datum.getFullYear().toString();
        aktZeit += "  ";
        aktZeit += (datum.getHours() < 10) ? '0' + datum.getHours() : datum.getHours().toString();
        aktZeit += ":";
        aktZeit += (datum.getMinutes() < 10) ? '0' + datum.getMinutes() : datum.getMinutes().toString();
        aktZeit += ":";
        aktZeit += (datum.getSeconds() < 10) ? '0' + datum.getSeconds() : datum.getSeconds().toString();

        document.getElementById("uhr").innerText = aktZeit

        viele Grüße

        Axel

        1. danke für deine hilfe.
          hab den fehler gefunden und nun funktioniert alles einwandfrei.
          hatte nach deinem ersten posting nur:
          var aktZeit = (datum.getDate() < 10) ? '0' + datum.getDate():toString();

          statt:

          var aktZeit = (datum.getDate() < 10) ? '0' + datum.getDate() : datum.getDate().toString();

          nochmals danke

          mario

  4. hi,

    Jetzt hab ich das Problem das er die Sekunden (und auch alles andere) immer ohne 0 anzeigt. Also: 12:24:1 (anstelle von 12:24:01)
    Ich habe scho alles Probiert und nun seid ihr meine letzte Hoffnung.
    Irgenwie muss das doch mit:
    if(datum.getSeconds() < 10) += '0'+= datum.getSeconds()
    gehen?

    schau dir mal das beispiel unter http://de.selfhtml.org/javascript/objekte/date.htm#get_minutes an.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  5. Hi,

    + datum.getSeconds()

    if(datum.getSeconds() < 10) += '0'+= datum.getSeconds()

    wie wär's einfach mit

    var s = datum.getSeconds(); s=(s<10) ? '0'+s : s;

    #freundliche Grüße
    Ingo