PDA

View Full Version : Resolved datetime difference caluculation for caluculatin SLA in time



nani_nisha06
11-05-2012, 01:45 PM
HI All,

As subject line says,

from the below I could successfully calculate days in to hours, time but I am able to calculate getting in to Minutes using below code.


//to claculate SLA
$datetime1=$date1; //first date
$datetime2=$date2; //second date

define("SECONDS_PER_HOUR", 24*60*60);
// Calculate timestamp
$start = strtotime($datetime1);
$stop = strtotime($datetime2);
// Diferences
$difference = $stop - $start;
// Hours
$hours = round($difference / SECONDS_PER_HOUR, 0, PHP_ROUND_HALF_DOWN);
$hourmul=($hours*24);

// Minutes
$minutes = ($difference/ SECONDS_PER_HOUR);
$minmul= round(($minutes/60));
// Seconds
$seconds = ($difference % SECONDS_PER_HOUR) / 60;
$secmul= round(($seconds/60));
$var= $hourmul. ":" .$minmul. ":" .$secmul;

please help to complete this function my desire output should be, for example.

Start date = 05-11-2012 23:15:00
end date= 06-11-2012 01:15:00

output should be 2:00:00 of time.

can any one help me ???

Regards,
nani

Fou-Lu
11-05-2012, 02:36 PM
Why not just use a DateInterval:


date_default_timezone_set('UTC');

$dts = new DateTime('05-11-2012 23:15:00');
$dte = new DateTime('06-11-2012 01:15:00');

$di = $dte->diff($dts, true);
print $di->format('%H:%I:%S');

The object properties can be inspected as well to see what to show. If its <> 0, then its different in some way shape or form, so you can tack on things like years and months systematically this way.

nani_nisha06
11-05-2012, 02:53 PM
Why not just use a DateInterval:


date_default_timezone_set('UTC');

$dts = new DateTime('05-11-2012 23:15:00');
$dte = new DateTime('06-11-2012 01:15:00');

$di = $dte->diff($dts, true);
print $di->format('%H:%I:%S');

The object properties can be inspected as well to see what to show. If its <> 0, then its different in some way shape or form, so you can tack on things like years and months systematically this way.

Thanks Fou-Lu,

This was a very simple logic but I was writing all different though of mine which took this all time.....need be more smart & sharp thinker from the next case....

even I have tried above code my self twice but was doing silly mistake make me open this ticket...

Thanks for you help...

Regards,
Nani