Archiv verlassen und diese Seite im Standarddesign anzeigen : Datum vergleichen
Hi,
ich habe ein Buchungs-Formular wo Anreise und Abreise als Datum im Format 12.06.2005 eingegeben wird.
Bei den Buchungen sind Zimmerpreise festgelegt. Nun sollen die Zimmerpreise zu einem bestimmten Datum aber kleiner sein.
Wie kann ich mit dem Datum rechnen, so dass der Zimmerpreis für den bestimmten Zeitraum kleiner ist?
Ich hoffe, dass ich mich verständlich ausgedrückt hab.
Danke schonmal
Gruß Joki
Wenn es nur für bestimmte Tage bzw. Wochentage gilt müsstest du schon alle Tage einzeln abfragen und
die Preise addieren. Falls es in einer Datenbank gespeichert ist - was es auch sein sollte - würden
die Tabellen ungefär so aussehen.
Tabelle zimmer
+-----------+--------------------+--------------+---------+
| nummer | beschreibung | doppelzimmer | minibar |
+-----------+--------------------+--------------+---------+
| 101 | moderner stil | 1 | 1 |
| 102 | mit balkon | 0 | 1 |
+-----------+--------------------+--------------+---------+
Tabelle Preise
+-------+-----+----------+--------+
| monat | tag | zimmernr | preis |
+-------+-----+----------+--------+
| 1 | 1 | 101 | 500.25 |
| 1 | 1 | 102 | 380.59 |
+-------+-----+----------+--------+
Hi ston3,
ich nutze keine Datenbank, brauche das Skript nur, um den Preis der Buchung zu berechnen.
Habe folgendes Script:
function gerDate2Timestamp($gerDate)
{
$splitted = explode(".",$gerDate);
$isodate = $splitted[2] . "-" . $splitted[1] . "-" . $splitted[0];
return strtotime($isodate);
}
function dateInTimeFrame($tfStartDate, $tfEndDate, $checkDate)
{
$start = gerDate2Timestamp($tfStartDate);
$end = gerDate2Timestamp($tfEndDate);
$check = gerDate2Timestamp($checkDate);
return (($start<=$check) && ($check<=$end));
}
$start = "04.07.2005"; //Zeitfenster Start
$end = "27.08.2005"; // Zeitfenster Ende
$test = $anreisetag;
$erg = ((dateInTimeFrame($start,$end,$test)));//Ergebnis = NULL oder 1
Und hier der Code um den Preis zuändern:
if($_REQUEST['Zimmerkategorie_1'] == "Einzelzimmer"){ //Kategorie 1
if($erg == 1){
$preis1 = 100;
$preisa = sprintf("%01.2f", $preis1);
$nettoez = $preisa;
$netto = $nettoez;
}
else{
$preis1 = $_REQUEST['EZ'];
$preisa = sprintf("%01.2f", $preis1);
$nettoez = $preisa;
$netto = $nettoez;
}
}
Das funktioniert auch, nur suche ich jetzt nach der Möglichkeit, den Preis wieder zu reduzieren, wenn die Buchung über den Zeitraum hinaus geht, verstehst du was ich meine?
Gruss Joki
Du subtraierst die Start- mit der Endzeit und erhälst dadruch den Zeitraum. Ist der Zeitraum grösser
gleich als der Zeitraum für die Rabatte nimmst du dann den Preis. Wenn es ein Rabatt als Skonto ist,
dann wird eben der Zwischensumme abzüglich des Rabatts berechnet.
Hi st0n3,
danke, werd mal mein Glück versuchen.
Wenn´s Probleme gibt werd ich mich wieder melden.
Gruss Joki
Powered by vBulletin® Version 4.1.5 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.