Mitropolis: Datum formatieren

Hallo,

nach erfolglosem Bücher wälzen muss ich Euch doch mal um Rat fragen.

Ziel ist es ein Datumfeld, welches vom Anwender leider immer wieder falsch (sowohl in der Formatierung z.B. 30.8.2005) als auch in der Logik (z.B. 34.12.2001) gefüllt wird, soll über ein Kalenderobjekt ( zum anklicken gefüllt werden. Zielformat: TT.MM.JJJJ

Das ActiveX-Object "Calendar 9.0" erzeugt als Value ein Datum im internationalen Format wie z.B.:

Wed Jul 7 00:00:00 UTC+0200 2004

Kennt Ihr eine bessere Möglichkeit, wie ich das Datum per javascript entweder direkt ins deutsche Format ##.##.#### (Nur Datum, Uhrzeit interessiert nicht) umwandeln kann oder es ersatzweise zumindest schaffe, die Ausgabe mit 2-stelligen Tagen und den Monat an Stelle von Jul als "07" ausgeben lassen kann?

Danke

Gruß

  1. hi,

    Kennt Ihr eine bessere Möglichkeit, wie ich das Datum per javascript entweder direkt ins deutsche Format ##.##.#### (Nur Datum, Uhrzeit interessiert nicht) umwandeln kann oder es ersatzweise zumindest schaffe, die Ausgabe mit 2-stelligen Tagen und den Monat an Stelle von Jul als "07" ausgeben lassen kann?

    du solltest dich mit dem Date()-objekt von JS befassen,
    http://de.selfhtml.org/javascript/objekte/date.htm

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. Hallo,

      ok, mit Date-Objekt beschäftigt, jetzt muss ich mit der Typumwandlung kämpfen. Wäre Euch um Hilfe im konkreten Fall sehr dankbar. Das hilft mir wahrscheinlich eher die Verständniskurve zu bekommen. Alle Beispiele beruhen leider auf der vorherigen Erzeugung des aktuellen Date-Objektes bzw. einem Date String.

      Ausgangsbasis ist nach wie vor der Wert meines Kalenderobjektes:

      Zeile 1: Datum = document.KalenderVon.datumvon.value;

      Eine Überprüfung mit alert(typeof Datum) und Ausgabe mit alert(Datum) bringen den Typ "date" und die Ausgabe "Wed Jul 7 00:00:00 UTC+0200 2004". Soweit ok.

      Um jetzt aber alles als String weiter zu verarbeiten, wollte ich Datum in einen String konvertieren:

      Zeile 2: DatumStr = Datum.toString();

      Zeile 3: alert(DatumStr);

      Jetzt erfahre ich in der Fehlermeldung, dass Datum kein Objekt ist, also folgendes probiert:

      Zeile 2: DatumStr = Datum.getMonth();
      Zeile 3: alert(DatumStr);

      WIeder das gleiche, ich weiß nicht mehr weiter. Bitte konkrete Problemlösung wenn möglich, dass hilft dem Verständnis mehr als nur Verweise auf Kapitel im SELFHTML.

      Danke

      Gruß

      1. hallo,

        Ausgangsbasis ist nach wie vor der Wert meines Kalenderobjektes

        Du meinst das hier:

        Das ActiveX-Object "Calendar 9.0" erzeugt als Value ein Datum im internationalen Format

        Ich fürchte, da bist du einem grandiosen Mißverständnis aufgesessen, weil du das Topic deines Threads "Javascript" genannt hast, aber nach ActiveX suchst. wahsaga hat dir das für "Javascript" zuständige Kapitel in SELFHTML bereits korrekt verlinkt und Gunnar gibt dir als "noch einfacher" ebenfalls einen Javascript-Link an.

        Die Frage ist, ob du nun auf ActiveX bestehst oder auf Javascript oder eventuell auf eine serverseitige Technik ausweichen möchtest. Dazu mußt du dich erst entscheiden.

        Grüße aus Berlin

        Christoph S.

        1. Hallo Christoph,

          mir geht es schon speziell darum, wie ich das Datumsobjekt "Wed Jul 7 00:00:00 UTC+0200 2004" mit Javascript in eine Zeichenkette umwandeln, zerstückeln und dann per Javascript wieder an das Textfeld zurückgeben kann.

          Andernfalls wäre ich auch für jede andere ANregung offen, wie ich einen eleganten Kalender erzeuge, der mir letztlich das Input-Feld mit einem korrekt formattiertem Datum füllt. Ich bestehe nicht auf ActiveX oder andere Techniken, hauptsache das Datum ist einfach wählbar und im Feld steht letztlich DD.MM.JJJJ. Mehr brauche ich nicht.

          Gruß

          1. das Datumsobjekt "Wed Jul 7 00:00:00 UTC+0200 2004" mit Javascript in eine Zeichenkette umwandeln

            Schau dir nochmal http://de.selfhtml.org/javascript/objekte/date.htm#allgemeines an. Und das Beispiel unter http://de.selfhtml.org/javascript/objekte/date.htm#set_date, und zwar den Anfang davon, bis zum ersten Auftreten von alert(Tag).

            Anstelle von alert() kannste deinen Ausgabestring in dem von dir gewünschten Format zusammenbasteln. Nur beim Monat aufpassen und 1 dazuzählen.

            (Wer immer auf die bescheuerte Idee gekommen ist, die Monate bei 0 anfangen zu zählen, sollte sich ganz dicht neben die Zwei-Frames-mit-einem-Klick-ändern-Frager stellen.)

            Gunnar

            --
            "(Der Student) kann sich so völlig dem hingeben, was er naiv für die Computerwissenschaft hält, also der bloßen Verfeinerung seiner Programmiertechniken, daß er sich auf diese Weise effektiv daran hindert, etwas wirklich Wesentliches zu studieren."
            (Joseph Weizenbaum in "Die Macht der Computer und die Ohnmacht der Vernunft")
  2. ein Datum im internationalen Format wie z.B.:
    Wed Jul 7 00:00:00 UTC+0200 2004

    Nein, im internationalen Datumsformat (ISO 8601) müsste dies 2004-07-07T00:00:00+02:00 heißen.http://de.wikipedia.org/wiki/Datumsformat#ISO_8601_und_EN_28_601

    Kennt Ihr eine bessere Möglichkeit, wie ich das Datum per javascript entweder direkt ins deutsche Format ##.##.#### (Nur Datum, Uhrzeit interessiert nicht) umwandeln kann

    Daas geht mit String-Methoden und regulären Ausdrücken.
    http://de.selfhtml.org/javascript/objekte/string.htm
    http://de.selfhtml.org/javascript/objekte/regexp.htm

    Gruß,
    Gunnar

    --
    "(Der Student) kann sich so völlig dem hingeben, was er naiv für die Computerwissenschaft hält, also der bloßen Verfeinerung seiner Programmiertechniken, daß er sich auf diese Weise effektiv daran hindert, etwas wirklich Wesentliches zu studieren."
    (Joseph Weizenbaum in "Die Macht der Computer und die Ohnmacht der Vernunft")
    1. Nein, im internationalen Datumsformat (ISO 8601) müsste dies 2004-07-07T00:00:00+02:00 heißen

      ... wobei die "-" und ":" auch entfallen können.

      Daas geht mit String-Methoden und regulären Ausdrücken.

      ... oder noch einfacher wie wahsaga meinte:
      http://de.selfhtml.org/javascript/objekte/date.htm#parse

      Gunnar

      --
      "(Der Student) kann sich so völlig dem hingeben, was er naiv für die Computerwissenschaft hält, also der bloßen Verfeinerung seiner Programmiertechniken, daß er sich auf diese Weise effektiv daran hindert, etwas wirklich Wesentliches zu studieren."
      (Joseph Weizenbaum in "Die Macht der Computer und die Ohnmacht der Vernunft")