Andreas Schulten: Datenanbindung (Microsoft), Datumsvergleich JavaScript

Ich habe das Beispiel zur Microsoft-Datenanbindung (http://selfhtml.teamone.de/dhtml/modelle/anzeige/woerterbuch.htm) angepasst und stehe als JavaScript-Einsteiger vor der Erweiterung auf einen Datumsvergleich.

Die Datentabelle hat den Aufbau...
_01^_02^_03^_04^_05
a1^a2^a3^02.01.02^aaaaa5
bbb1^bbb2^bbb3^31.12.00^bb5
cc1^c2^c3^15.10.01^cccccccccc5

Ich muß nun das JavaScript um folgenden Filter erweitern:
Für die Felder _01,_02,03, und _05 gibt es wie im o.g. Bsp. Eingabefelder (INPUT...).
Der Filter soll die Anzeige der Daten nun zusätzlich einschränken nach dem Schema
.. && Datum aus Feld "_04" >= document.Eingabe.datum_von.value &&
      Datum aus Feld "_04" <= document.Eingabe.datum_bis.value

Das Datum liegt als String im Format "TT.MM.JJ" vor.

Wer kann mir mit einem Tipp helfen?

Gruß Andreas

  1. Tag...

    Ich habe das Beispiel zur Microsoft-Datenanbindung (http://selfhtml.teamone.de/dhtml/modelle/anzeige/woerterbuch.htm) angepasst und stehe als JavaScript-Einsteiger vor der Erweiterung auf einen Datumsvergleich.

    Die Datentabelle hat den Aufbau...
    _01^_02^_03^_04^_05
    a1^a2^a3^02.01.02^aaaaa5
    bbb1^bbb2^bbb3^31.12.00^bb5
    cc1^c2^c3^15.10.01^cccccccccc5

    Ich muß nun das JavaScript um folgenden Filter erweitern:
    Für die Felder _01,_02,03, und _05 gibt es wie im o.g. Bsp. Eingabefelder (INPUT...).
    Der Filter soll die Anzeige der Daten nun zusätzlich einschränken nach dem Schema
    .. && Datum aus Feld "_04" >= document.Eingabe.datum_von.value &&
          Datum aus Feld "_04" <= document.Eingabe.datum_bis.value

    Das Datum liegt als String im Format "TT.MM.JJ" vor.

    Wer kann mir mit einem Tipp helfen?

    Tja wenn ich dein Problem richtig verstehe möchtest du deine Datensätze ab einem bestimmten Datum anzeigen lassen. Dazu musst du aber in der Form erstaml ein JavaScript schreiben, welches mit Datumsangaben umgehen kann. Denn per JavaScript lässt sich zwar ermitteln das 1 größer oder gleich 0 ist aber bei einem Datum sieht das anders aus.

    Du solltes dazu deine Datensätze nach Datum sotieren. So könntest du alle Daten abfallend oder steigend nach einem Datum ausgeben, welches du vorher über einen Stringvergleich ermittelt hast.

    cu code2i

    1. Tja wenn ich dein Problem richtig verstehe möchtest du deine Datensätze ab einem bestimmten Datum anzeigen lassen.

      schlimmer ... ich muß den Zeitraum variabel halten! ;-)

      Diese Krücke habe ich mir gebaut (Mini-Beispiel):

      Werte der Eingabefelder im Formular
      fvon:01.01.02
      fbis:31.03.02
      fsuchdatum:15.02.02
      ***
       var vdatum = document.Eingabe.fvon.value
       var bdatum = document.Eingabe.fbis.value
       var sdatum = document.Eingabe.fsuchdatum.value
       var vdat = vdatum.split(".");
       var bdat = bdatum.split(".");
       var sdat = sdatum.split(".");
       var von = vdat[2]+vdat[1]+vdat[0];
       var bis = bdat[2]+bdat[1]+bdat[0];
       var suchdatum = sdat[2]+sdat[1]+sdat[0];

      if (suchdatum >= von && suchdatum <= bis)
        document.write(suchdatum + " liegt drin");
       else
        document.write(suchdatum + " liegt NICHT drin");
      ***
      macht einen Vergleich ...
        ist 020215 >=020101 UND <= 020331 ?
      und sagt in diesem Fall: "020215 liegt drin" - klappt also.

      Ich kann das Beispiel (http://selfhtml.teamone.de/dhtml/modelle/anzeige/woerterbuch.htm) aber nicht anpassen.

      Mit einem Textfeld war es einfach:
      *******
        if(document.Eingabe.Such_04.value != "") {
         if(Suchbegriffe > 0)
           Suchausdruck = Suchausdruck + " & _04 = " + document.Eingabe.Such_04.value;
         else
           Suchausdruck = Suchausdruck + "_04 = " + document.Eingabe.Such_04.value;
         Suchbegriffe++;
       }
      *******
      Nun müsste ich aber den Wert aus Feld "_04" und den Wert aus dem Eingabefeld umwandeln in das Format JJMMTT und miteinander vergleichen.
      Ich durchschaue die notwendige Syntax nicht. :-(
      Wer hat hat's drauf?

      Gruß Andreas