tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
2386
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Boof Boof ist offline Mitglied Silber
    Registriert seit
    Sep 2005
    Beiträge
    75
    Hi Community,

    ich habe ein kleines Problem.
    Und zwar möchte ich Daten vergleichen. Bei allen Daten die in der Vergangenheit liegen soll eine Fehlermeldung auftauchen. Soweit hab ich das auch schon hinbekommen.
    Das Problem wäre jetzt:

    Aktuelles Datum: 06.04.2006
    Eingegebenes Datum: 02.08.2006 -- >Funktioniert nicht

    Es kommt die Fehlermeldung obwohl der Wert nicht in der Vergangenheit liegt.

    Ich habe für den Tag, den Monat und das Jahr jeweils ein Formularfeld das ich überprüfe ob der eingetragene Wert kleiner ist als der Wert des aktuellen Datums.

    Es ist mir schon klar das es dann so nicht funktionieren kann aber was kann ich tun damit es funktioniert ?

    Hier mal mein Code der alle Formularfelder einzeln abfragt:

    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    function aufgabepruefen () {
     
    //Aktuelles Datum
    var aktuell = new Date();
    var jahr = aktuell.getYear();
    var monat = aktuell.getMonth()+1;
    var tag = aktuell.getDate();
     
    //Variablen für die Formularfelder
                                                                
    //Startdatum                                                
    var starttag = document.aufgabe.startdatumtag.value;        
    var startmonat = document.aufgabe.startdatummonat.value;    
    var startjahr = document.aufgabe.startdatumjahr.value;
     
    //Die eigentliche Abfrage
        if (starttag != "" || startmonat != "" || startjahr != "") {
            if (startjahr < jahr || startmonat < monat || starttag < tag) { 
                alert ("Das Startdatum ist nicht gültig da es in der Vergangenheit liegt");
            }
        }
    }

    Wie schaffe ich es bloss, dass wenn der eingetragende Monat größer ist als der aktuelle Monat der eingetragende Wert des Tages kleiner sein darf als der aktuelle Wert des Tages ?

    Bin für jeden Tip dankbar.
     

  2. #2
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    du kannst mit der Methode parse des Date-Objektes den eingetragenen Zeitpunkt in Millisekunden
    umrechnen. Das gleiche erfolgt mit dem aktuellen Datum. Diese beiden Werte kannst du problemlos
    vergleichen und analysieren.

    Im folgenden Beispiel habe ich für das aktuelle Datum als Uhrzeit Mitternacht gewählt - kannst du ja an
    deine Bedürfnisse anpassen.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    function aufgabepruefen () {
      //Aktuelles Datum
      var aktuell = new Date();
      var jahr = aktuell.getYear();
      var monat = aktuell.getMonth()+1;
      var tag = aktuell.getDate();
     
      // Vergleichsdatum zum heutigen Tag um 0 Uhr
      var objCompDate = new Date(jahr, monat, tag, 0, 0, 0);
      // Millisekunden zum 01.01.1970 ermitteln
      var longCompMS = Date.parse(objCompDate);
     
      //Variablen für die Formularfelder
      //Startdatum
      var starttag = document.aufgabe.startdatumtag.value;
      var startmonat = document.aufgabe.startdatummonat.value;
      var startjahr = document.aufgabe.startdatumjahr.value;
     
      // Date-Objekt zum eingegebenen Datum
      var objTestDate = new Date(startjahr, startmonat, starttag, 0, 0, 0);
      // Millisekunden vom 01.01.1970 ermitteln
      var longTestMS = Date.parse(objTestDate);
     
      // Falls das Datum in der Vergangenheit liegt
      if(longTestMS < longCompMS){
        alert("Das Startdatum ist nicht gültig, da es in der Vergangenheit liegt!");
      }
    }

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  3. #3
    Boof Boof ist offline Mitglied Silber
    Registriert seit
    Sep 2005
    Beiträge
    75
    Wow das funktioniert perfekt.

    Vielen vielen Dank.

    Leider verstehe ich ein paar Sachen in dem Script noch nicht so ganz aber das werde ich mir nochmal genauer angucken also die einzelnen Befehle u.s.w.

    Dann klappt das schon.

    Auf die Lösung wär ich nie gekommen hatte ganz andere Lösungsideen zu der Problematik.
    Gut das es dieses Forum gibt
     

Ähnliche Themen

  1. Datumsvergleich
    Von preko im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.03.06, 09:38
  2. datumsvergleich
    Von Freak2k im Forum Java
    Antworten: 2
    Letzter Beitrag: 19.05.05, 10:07
  3. Datumsvergleich...
    Von oschidodl im Forum PHP
    Antworten: 1
    Letzter Beitrag: 27.12.04, 09:09
  4. Datumsvergleich
    Von Arndtinho im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 12.03.04, 00:01
  5. datumsvergleich
    Von jörgosan im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 28.03.02, 20:39