PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datum vergleichen



Joki
09.06.2005, 12:02
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

st0n3
09.06.2005, 14:37
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 |
+-------+-----+----------+--------+

Joki
10.06.2005, 12:11
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

st0n3
10.06.2005, 13:01
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.

Joki
10.06.2005, 13:22
Hi st0n3,

danke, werd mal mein Glück versuchen.
Wenn´s Probleme gibt werd ich mich wieder melden.

Gruss Joki