note 38885 deleted from function.time by aidan
| From: | aidan@php.net | Date: | Sat, 08 Oct 2005 01:06:36 +0000 |
| Subject: | note 38885 deleted from function.time by aidan | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-96636@lists.php.net to get a copy of this message | ||
Note Submitter:
----
@jcaroll:
just using floor in calcElapsedTime() may cause less precision.
I prefer something like this:
function calcDateDiff( $date1, $date2 )
{
if( $date2 > $date1 )
{
die( "error: date1 has to be >= date2 in calcDateDiff($date1, $date2)" );
}
$diff = $date1-$date2;
$seconds = 0;
$hours = 0;
$minutes = 0;
if($diff % 86400 > 0)
{
$rest = ($diff % 86400);
$days = ($diff - $rest) / 86400;
if( $rest % 3600 > 0 )
{
$rest1 = ($rest % 3600);
$hours = ($rest - $rest1) / 3600;
if( $rest1 % 60 > 0 )
{
$rest2 = ($rest1 % 60);
$minutes = ($rest1 - $rest2) / 60;
$seconds = $rest2;
}else
$minutes = $rest1 / 60;
}else
$hours = $rest / 3600;
}else
$days = $diff / 86400;
return array( "days" => $days, "hours" => $hours, "minutes"
=> $minutes, "seconds" => $seconds);
}
print_r( calcDateDiff( strtotime( "now" ), strtotime( "2004-01-7 22:00:00" ) )
);