-2

here is my array output look like this

    Array ( [0] => 02:50:19 )  
    Array ( [0] => 00:00:00 )  
    Array ( [0] => 00:01:06 )  
    Array ( [0] => 00:55:06 )  
    Array ( [0] => 01:29:40 )  
    Array ( [0] => 00:00:00 )  
    Array ( [0] => 07:01:32 )  
    Array ( [0] => 00:00:00 )

Now how do I Calculate total time from this array..??

  $x = null;
  $sum = strtotime('00:00:00');
   foreach($total as $t){
    $date = new DateTime($t);
     if($x == ''){
       $diff = $date->diff($date2);
       echo "difference " . $interval->h . " hour, " . $interval->i." minutes, ".$interval->s." second";
       $sum1=strtotime($diff->h.':'.$diff->i.':'.$diff->s)-$sum;
       $sum2 = $sum2+$sum1;
       echo "<br />";
      }
      $date2 = $date;

    $x = 1;
    }
    $sum3=$sum+$sum2;

    echo date("H:i:s",$sum3);

I tried this code from Stack overflow answer here is link Calculate total hours from Array - php
but I didn't get any result.

2 Answers2

5

Try this code, add only the array timimgs then add to todays timings

<?php
$total = array('01:00:00','02:20:00','04:00','05:10');
$sum = strtotime('00:00:00');
$sum2=0;  
foreach ($total as $v){

   $sum1=strtotime($v)-$sum;
   $sum2 = $sum2+$sum1;
}

$sum3=$sum+$sum2;

echo date("H:i:s",$sum3);

DEMO

Dave
  • 3,073
  • 7
  • 20
  • 33
1

You could calculate the total number of seconds like this:

$total = 0;
foreach ($array as $time) {

    $temp = explode(':', $time);
    $total += intval($temp[2]); // Add the seconds
    $total += intval($temp[1]) * 60; // Add the minutes
    $total += intval($temp[0]) * 60 * 60; // Add the hours
}

And then you can echo the total like this:

echo gmdate("H:i:s", $total);
Rolfie
  • 110
  • 1
  • 7