Autor | Zpráva | ||
---|---|---|---|
L@mer Profil * |
#1 · Zasláno: 16. 8. 2008, 11:22:32
Vytvořil jsem kalkulátor ceny ubytování v penzionu s kódem:
<?php error_reporting(7); include ("config.php"); $mezisoucet = $cenazanoc*$_POST["pocetnoci"]; $soucet = $mezisoucet*$_POST["pocetosob"]; echo "<b>Výsledná cena:</b>"; echo ($soucet); echo " Kč</b>"; echo "<br>"; echo time(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>Kalkulátor</title> </head> <body> <hr> <br> <form action="kalkulacka.php" method="POST"> <b>Počet nocí:</b><input type="text" name="pocetnoci"><br> <b>Počet osob:</b><input type="text" name="pocetosob"><br> <input type="submit" value="Vypočítat cenu!"> </body> </html> --------------- Chtěl bych ho rozšířit. Potřebuji, aby dokázal rozlišit cenu o sezóně a mimo sezónu. Mám tu ale problém: 1. Jak ošetřit situaci, kdy by klient zadal skriptu údaje: Sezóna je pro tento příklad srpen Datum začátku pobytu: 27.7.2008 Datum konce pobytu: 5.8.2008 a samozřejmě i naopak (začátek pobytu v sezóně a konec mimo sezónu). Jde o to, aby kalkulátor za pobyt mimo sezónu zaúčtoval určitou částku (např. 700 Kč / noc) a za pobyt v sezóně částku jinou (např. 1000 Kč / noc) Věděl by někdo, jak na to? Prosím, poraďte mi. Předem děkuji, L@amer |
||
Medvídek Profil |
#2 · Zasláno: 16. 8. 2008, 12:14:50
Podmínkou :) Pokud se zadaný datum nachází období, tak konečná cena + 1000, pokud ne, tak 700
|
||
L@mer Profil * |
#3 · Zasláno: 16. 8. 2008, 13:47:37
Díky moc. To mě nenapadlo
|
||
nightfish Profil |
#4 · Zasláno: 16. 8. 2008, 13:58:57
řešil bych to tak, že bych si zadaný interval rozložil na jednotlivé dny, a ke každému si doplnil správnou cenu (podle toho, jestli je v sezóně nebo mimo)
šlo by to řešit třeba takhle: (samozřejmě pro více intervalů sezón by bylo potřeba to ještě upravit) $od = "2008-07-27"; $do = "2008-08-05"; $sezonaOd = "2008-08-01"; $sezonaDo = "2008-08-31"; $dny = array(); for ($i = $od; $i <= $do; ) { $dny[] = $i; $d = strtotime($i); $i = date("Y-m-d", $d + 86400); } $dniSezona = 0; $dniMimoSezonu = 0; foreach ($dny as $v) { if (($v >= $sezonaOd) && ($v <= $sezonaDo)) $dniSezona++; else $dniMimoSezonu++; } $cenaCelkem = $dniSezona * 1000 + $dniMimoSezonu * 700; echo "cena celkem: $cenaCelkem Kč"; |
||
Časová prodleva: 16 let
|
0