Differenz von Tagen berechnen

Philro

Grünschnabel
Hallo,
bin zurzeit dabei etwas zu schreiben : man gibt 2 Daten ein ( von-bis). es soll dann automatisch errechnet werden wieviele Tage das sind. Das klappt soweit, habe es in einen timetamp umgewandelt nur leider wird das Ergebnis auch als timestamp angezeigt. Es muss also wieder zurück gewandelt werden nur weiß ih leider nicht so recht wie ich das anstellen soll. Wäre Nett wenn mir jemand helen könnte.

hier mal der Code:
PHP:
 <form action="datum.php" method="POST">
    <table width=400>
        <tr>
            <td></td>
            <td><center>Anfang</center></td>
            <td><center>Ende</center></td>
        </tr><tr>
            <td>Datum:</td>
            <td>
                <input type=text name="anfang_datum" value="01.02.2012">
            </td>
            <td>
                <input type=text name="ende_datum" value="04.02.2012">
            </td>
        </table>
        <input type=submit name=differenziere value="Preis berechnen">
    </form>
    <?php
    $anfang_datum = trim($_POST['anfang_datum']);

    $ende_datum = trim($_POST['ende_datum']);

    $differenz = array();

   
        $datum_anfang = explode('.', $anfang_datum);
        $datum_ende = explode('.', $ende_datum);

        $timestamp_anfang = mktime(0, 0, 0, $datum_anfang[1], $datum_anfang[0], $datum_anfang[2]);
        $timestamp_ende = mktime(0, 0, 0, $datum_ende[1], $datum_ende[0], $datum_ende[2]);
        $differenz['tage'] = round($timestamp_ende - $timestamp_anfang) + 1;
        $preis = $differenz['tage'] * 32;

        echo "Tage:".$differenz['tage']."<br>";
        echo "Preis: ".$preis." €uro";

   

    ?>
 
Hi Philro & Willkommen im Forum,

ein Tag hat 86.400 Sekunden, wenn du deine Differenz dadurch teilst erhältst du die Tage. Wenn du es genauer haben willst nimmst du den Rest der Division und gehst genauso mit den Stunden vor.


Gruß Napofis
 
Hi,
Danke das hat funktioniert!

folgendes Problem hab ich aber noch: wenn man das Skript aufruft ist gleich 1 Tage und 32€ angegeben. Kann man das verhindern? Und wenn man garnix in das Textfeld eingibt erscheint ebenfalls 1 Tage 32€.

*Edit:* Hab grad festgestellt, dass wenn ich einen längeren Zeitraum wähle,z.B. 2.2.2012 bis 7.5.2012 kommt ne ungrade Zahl raus 65.9583333333. Woran liegt das?
 
Zuletzt bearbeitet:
Ja kann man, du musst die Eingaben validieren bevor du damit Berechnungen machst.

Ganz sicher bin ich mir jetzt nicht aber ich kann es mir nur mit der Zeitumstellung erklären.
 
Zuletzt bearbeitet:
Zurück