Willkommen, Gast
Angemeldet bleiben:

THEMA:

zwei korrespondierende Datumsfelder 9 Jahre 2 Monate her #100465

  • Autor
  • SvenZ
  • Offline
  • Junior Breezer
  • Junior Breezer
  • Beiträge: 23
  • Dank erhalten: 0
Ich habe den typischen Anwendungsfall für zwei korrespondierende Datumsfelder. Buchungsformular-Anreisetag-Abreisetag.
Im Thread " crosstec.org/en/forums/15-usage/95509-cu....html?start=6#100052 " haben wir die Validierung des Datums gelöst. (Darf nicht in Vergangenheit liegen).
Der naheliegende Folgeschritt ist nun, mittels Validierungsscript dafür zu sorgen, dass ein zweites Datumfeld (Abreisetag) mind. x Tage (sollte variabel sein) nach dem ersten Datumsfeld (Anreisetag) liegt.
Damit soll realisiert werden, dass das Abreisedatum nicht in der Vergangenheit liegt, nicht vor dem Anreisetag liegt und ggf. mind. soundsoviel Tage nach dem Anreisetag liegt.
Bitte dabei um zeitnahe Hilfe.
PS: warte immer noch auf meine Rechnung
Danke

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

zwei korrespondierende Datumsfelder 9 Jahre 1 Monat her #101324

  • Autor
  • SvenZ
  • Offline
  • Junior Breezer
  • Junior Breezer
  • Beiträge: 23
  • Dank erhalten: 0
Bitte Hilfe hierzu ...

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

zwei korrespondierende Datumsfelder 9 Jahre 1 Monat her #101326

  • TheMuffinMans Avatar
  • TheMuffinMan
  • Offline
  • Developer
  • Developer
  • Beiträge: 10062
  • Karma: 167
  • Dank erhalten: 809
Hi,

bei was genau benötigst Du denn jetzt Hilfe? Bei der Programmierung Deiner Regel? Wie sieht Dein derzeitiger Stand genau aus? (url)

Gruss,
Markus

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

zwei korrespondierende Datumsfelder 9 Jahre 1 Monat her #101332

  • Autor
  • SvenZ
  • Offline
  • Junior Breezer
  • Junior Breezer
  • Beiträge: 23
  • Dank erhalten: 0
Ja, bei der Programmierung. Die bestehende Validierungsregel (Datum nicht in Vergangenheit) müsste erweitert werden.
Testseite: sven-ziesche.de

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

zwei korrespondierende Datumsfelder 9 Jahre 1 Monat her #101958

  • chrisals Avatar
  • chrisal
  • Offline
  • Ultimate Breezer
  • Ultimate Breezer
  • Beiträge: 6983
  • Karma: 187
  • Dank erhalten: 630
Hallo Svenz,

hier ist erstmal die einfache Methode:
(Überprüft ob Anreisetag in der Vergangenheit liegt und ob überhaupt ein Datum eingetragen worden ist).
//Kalender Ankunft
function ff_acalendar_validation(element, message)
{
  if(element.value.split("-").length != 3){return message == '' ? "Bitte Datum eingeben!" : message} 

  var aDate = new Date(element.value.split("-")[0], Number(element.value.split("-")[1])-1, element.value.split("-")[2],0,0,0,0).getTime();

  var today = new Date();
  today.setHours(0);
  today.setMinutes(0);
  today.setSeconds(0);
  today.setMilliseconds(0);
  today = today.getTime();

  if(aDate < today)
  {
   if (message=='') message = "Das Ankunftsdatum liegt in der Vergangenheit";
   return message; 
  }
  return '';
} 

(Überprüft ob Abreisedatum vor dem Anreisedatum liegt)
//Kalender Abreise
function ff_dcalendar_validation(element, message)
{
    if(element.value.split("-").length != 3){return message == '' ? element.name+" please enter a date.n" : message}
    
  var dDate = new Date(element.value.split("-")[0], Number(element.value.split("-")[1])-1, element.value.split("-")[2],0,0,0,0).getTime();
  var aaDate = new Date(ff_getElementByName('acalendar').value.split("-")[0], Number(ff_getElementByName('acalendar').value.split("-")[1])-1, ff_getElementByName('acalendar').value.split("-")[2],0,0,0,0).getTime();
  

  if(dDate < aaDate)
  {
   if (message=='') message = element.name+" Departure is before arrival??.n";
   return message; 
  }
  return '';
} 

Für die Lösung mit den Tagen nach der Anreise muss ich mir noch was überlegen.

Mit freundlichen Grüßen
Chris

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: Post by chrisal.

zwei korrespondierende Datumsfelder 9 Jahre 1 Monat her #102005

  • Autor
  • SvenZ
  • Offline
  • Junior Breezer
  • Junior Breezer
  • Beiträge: 23
  • Dank erhalten: 0
und hier mal noch die Variante für's deutsche Datumsformat:

function ff_datum1_validation(element, message)
{
if(element.value.split(".").length != 3){return message == '' ? element.name+" faild in my test.n" : message}
var vDate = new Date(element.value.split(".")[2], Number(element.value.split(".")[1])-1,
element.value.split(".")[0],0,0,0,0).getTime();
var today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
today.setMilliseconds(0);
today = today.getTime();
if(vDate < today)
{
if (message=='') message = element.name+" faild in my test.n";
return message;
}
return '';
}

und

//Kalender Abreise
function ff_datum2_validation(element, message)
{
if(element.value.split(".").length != 3){return message == '' ? element.name+" please enter a date.n" : message}

var dDate = new Date(element.value.split(".")[2], Number(element.value.split(".")[1])-1, element.value.split(".")[0],0,0,0,0).getTime();
var aaDate = new Date(ff_getElementByName('datum1').value.split(".")[2], Number(ff_getElementByName('datum1').value.split(".")[1])-1, ff_getElementByName('datum1').value.split(".")[0],0,0,0,0).getTime();


if(dDate < aaDate)
{
if (message=='') message = element.name+" Departure is before arrival??.n";
return message;
}
return '';
}

Und wenn wir nun noch die Variante "Abreisetag nicht vor Anreisetag + x" hinkriegen, bin ich doch schon für diesen Thread zufrieden.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
  • 2
Moderatoren: ForumSupport
Ladezeit der Seite: 0.058 Sekunden

Angebot

Sommer Special! Alle Mitgliedschaften zum Sonderpreis!

Prio Support, alle Extensions und alle Templates in einem Paket.

Hier geht's zur Bestellung

Crosstec hilft sparen!

Falls Sie neu bei Crosstec sind aber bereits einen Formulargenerator bei einem anderen Hersteller gekauft haben, dann bekommen sie von uns einen Rabatt von 25% auf unsere 1-Jahres und Pro-Mitgliedschaften

Wie Sie an den Rabatt kommen?

Schreiben Sie uns einfach eine kurze Email mit beigelegten Kaufbeleg (z.B. PayPal Quittung) an sales@crosstec.org.

Wir unterstützen die Joomla Community

Crosstec unterstützt weltweit alle offiziellen Joomla! User Groups und Organisatoren von Joomla! Days die bei Joomla.org registriert sind.

Falls das auf dich zutrifft und du eines unserer Produkte brauchst, schreib uns eine kurze Email an info@crosstec.org und du bekommst eine Flatrate-Mitgliedschaft geschenkt!