Zeitspanne berechnen - in Tagen

fixxxxxi

Erfahrenes Mitglied
Ich möchte die Zeitspanne zwischen "$ds['begindate']" und "$ds['enddate']" berechnen. Beide Datumsangaben sind in der Datenbank im Format 0000-00-00 angegeben. Folgende Abfrage habe ich gemacht:

PHP:
$begin_y=(date("Y",$ds['begindate']));
$begin_m=(date("m",$ds['begindate'])); 
$begin_d=(date("d",$ds['begindate']));

$end_y=(date("Y",$ds['enddate']));
$end_m=(date("m",$ds['enddate']));
$end_d=(date("d",$ds['enddate']));

$sql_dauer = (date(mktime(0,0,0,$begin_y,$begin_m,$begin_d))) - (date(mktime(0,0,0,$end_y,$end_m,$end_d))); 
$ban_dauer= ($sql_dauer/86400);

Als Ergebnis wird mir immer 0 ausgegeben. Was hab ich falsch gemacht? LG Chris
 
[phpf]mktime[/phpf] liefert dir alles was du brauchst, allerdings musst du es auch richtig sortieren.

Code:
int mktime  ([ int $hour= date("H")  [, int $minute= date("i")  [, int $second= date("s")  [, int $month= date("n")  [, int $day= date("j")  [, int $year= date("Y")  [, int $is_dst= -1  ]]]]]]] )

Stunde, Minute, Sekunde, Monat, Tag, Jahr, Sommerzeit

Außerderm macht der verschachelte Aufruf von [phpf]mktime[/phpf] in [phpf]date[/phpf] keinen Sinn.
 
Ich kriegs einfach nicht hin. Irgndwas funktioniert da nicht. Wie würde es denn für meine Abfrage richtig aussehen?
 
Am einfachsten wäre es so:

PHP:
<?php
$amountOfDays = ( strtotime($ds['enddate']) - strtotime($ds['begindate']) ) / 86400;
?>
 
Zuletzt bearbeitet:
ok... zumindest ist das Ergebnis bei

PHP:
$ban_dauer = ( strtotime($ds['enddate']) - strtotime($ds['begindate'] ) / 86400);

nicht mehr 0! Jedoch hab ich bei dem Beispiel wenn

beginndate=2008-12-10
enddate=2008-12-30

ist, als Ergebnis "1230577377.0417" Irgendwas ist noch nicht richtig.

*UPDATE*

Hab es hinbekommen durch das Setzen von ein paar Klammern :P

PHP:
$ban_dauer = (( strtotime($ds['enddate']) - strtotime($ds['begindate'] )) / 86400);
 
Zurück