Variable zurück in Datum wandeln
Jiji
- javascript
1 Gunnar Bittersmann
0 LX
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];
@@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'
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