Goedemorgen,

Ik ben voor iemand met een website bezig, alleen heeft die webhosting een MySQL versie die geen DATEDIFF enz. ondersteund.
Nu wil ik het via PHP uitrekenen.
Maar wat is de beste manier om het verschil tussen 2 datums te berekenen?
Dit gebruik ik nu, maar werkt niet altijd even goed, ook komt er bij het onderstaande script een getal uit van bijvoorbeeld 3.95 wat dus dan 4 moet zijn.

<?php
function dateDiff( $date1 , $date2 ) {
	$date1 = strtotime( $date1 );
	$date2 = strtotime( $date2 );
	$seconds = $date1 - $date2;
	// 86400 = 1 dag
	$days = ( $seconds / 86400 ) + 1;
	return $days;
}
?>


Ik wil dus gewoon tussen 2 datums, het aantal dagen verschil weten.
Datums worden in de functie geladen als:

<?php
echo dateDiff( '2009-04-01' , '2009-03-29' );
?>

Uitkomst: 3.95833333333
Ja maar ik vraag me af hoelang dat goed blijft gaan.
En of het ook de bedoeling is dat bijvoorbeeld 3.124563 ook 4 moet worden etc.
Is het dan niet mogelijk om met een if statement te checken of de uitkomst hoger is dan (in dit geval) 3.5, zoja dan 3.0 en als de uitkomst 3.6 is bijv. dat hij dan wordt afgerond naar 4 ?
Ik weet niet, ik heb ff een scriptje gemaakt dat 3 maanden op het scherm weergeeft, en het verschil tussen nu en die gegenereerde datum berekend, dat gaat goed met ceil, maar die getallen zonder ceil zijn allemaal met een decimaal van boven de 9 ( VB: 3.9583333333333 ).
Ik weet niet of er ooit een decimaal bij komt die bijvoorbeeld naar de 1 gaat, en of ie dan ook geceiled moet worden.
Is misschien de round functie dan geen optie ? http://nl3.php.net/round

Als ik het dus goed begrijp wil je niet dat een getal zoals 3.142354346 geceiled wordt naar 4 ?


Reageren