Jiji: Variable zurück in Datum wandeln

Hallo,

Ich bin gerade dabei ein kleines Buchungssystem zu machen und habe jetz ein Problem... Das Datum, was ich zum vergleichen nehme (z.b. datum oder zweitage), wird nicht als Datum erkannt.
Sprich wenn man den 28.2.2010 auswählt und +2 rechnet müsste ja der 02.03.2010 rauskommen... Kann mir jemand bei diesem Problem helfen?
mfg Jiji

  
var H=new Date(),T=H.getDate(),M=H.getMonth()+1,J=H.getFullYear();  
  if (T<=9) {  
	  T="0"+T;  
	  }  
  if (M<=9) {  
	  M="0"+M;  
	  }  
  var datum = T+"-"+M+"-"+J;  
  
var zukunft = parseInt(T);  
var zweitage = zukunft+2;  
if(zweitage<=9){  
	zweitage= "0"+zweitage;  
	}  
zweitage = zweitage+"-"+M+"-"+J;  
  
if(document.testform.datumVom.value <= zweitage )  {  
    alert("Zwischen Anreisedatum und heute müssen mindestens 2 Tage liegen!");  
    document.testform.datumVom.focus();  
    return false;}  
  
 var datum1 = document.testform.datumVom.value.split("-");  
 var jsDate = new Date(datum1[2], datum1[1], datum1[0]);  
 var dauer = parseInt(datum1[0]);  
  dauer = dauer+7;  
if(dauer<=9){  
	dauer= "0"+dauer;  
	}  
dauer = dauer+"-"+datum1[1]+"-"+datum1[2];  
  

  1. @@Jiji:

    nuqneH

    Du solltest Datumsberechnungen nie auf der Jahr-Monat-Tag-Repräsentation tätigen, sondern immer auf dem Date-Objekt.

    var jetzt = new Date();  
      
    var zweiTageSpäter = new Date(jetzt.getTime() + 172800000);  
      
    alert(zweiTageSpäter.getFullYear() + "-" + (zweiTageSpäter.getMonth() + 1) + "-" + zweiTageSpäter.getDate());
    

    (2 Tage sind 2 * 24 * 60 * 60 * 1000 ms = 172800000 ms.)

    Qapla'

    --
    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
  2. Hallo.

    Nichts für ungut, aber bei Deinem Scripting-Stil dreht sich mein Magen seitwärts. Du möchtest also ein Datum in String-Format parsen: Eingabe entspricht DD-MM-YYYY, Ausgabe soll ein Date-Objekt sein, mit dem Du Vergleiche anstellen kannst.

    var datestring = '01.01.2010'; // nur ein Beispiel  
      
    function parseDateString(datestring) {  
        /(\d+)\D+(\d+)\D+(\d+)/.exec(datestring);  
        var d = RegExp.$1|0, m = RegExp.$2|0, y = RegExp.$3|0;  
        return new Date(y, m-1, d);  
    }  
      
    parseDateString(datestring); // gibt ein Date-Objekt zurück
    

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a