Categorias

Função para calcular diferença de tempo em segundos

Calcula a diferença de tempo em segundos entre duas datas: $start (começo da contagem) e $end (fim da contagem).

function get_time_diff($start,$end){  
  $diff = ($end-$start);
  if($diff<60){
    $sec = $diff;
  }
  else{
    if($diff<3600){
      $min = floor($diff/60);
      $sec = $diff-(60*$min);
    }
    else{
      if($diff<86400){
        $hour = floor($diff/3600);
        $min = floor(($diff-($hour*3600))/60);
        $sec = (($diff-($hour*3600)-(60*$min)));
      }
      else{
        if($diff<604800){
          $day = floor($diff/86400);
          $hour = floor(($diff-($day*86400))/3600);
          $min = floor(($diff-($day*86400)-($hour*3600))/60);
          $sec = (($diff-($day*86400)-($hour*3600)-(60*$min)));
        }
        else{
          if($diff<31536000){
            $week = floor($diff/604800);
            $day = floor(($diff-($week*604800))/86400);
            $hour = floor(($diff-($week*604800)-($day*86400))/3600);
            $min = floor(($diff-($week*604800)-($day*86400)-($hour*3600))/60);
            $sec = (($diff-($week*604800)-($day*86400)-($hour*3600)-(60*$min)));
          }
          else{
            $year = floor($diff/31536000);
            $week = floor(($diff-($year*31536000))/604800);
            $day = floor(($diff-($year*31536000)-($week*604800))/86400);
            $hour = floor(($diff-($year*31536000)-($week*604800)-($day*86400))/3600);
            $min = floor(($diff-($year*31536000)- ($week*604800)-($day*86400)-($hour*3600))/60);
            $sec = (($diff-($year*31536000)-($week*604800)-($day*86400)-($hour*3600)-(60*$min)));
          }
        }
      }
    }
  }

  if($sec != ''){
    if($sec == 1){
      $final = $sec . ' second';
    }
    else{
      $final = $sec . ' seconds';
    }
  }
  if($min != ''){
    if($min == 1){
      $final = $min . ' minute ' . $final;
    }
    else{
      $final = $min . ' minutes ' . $final;
    }
  }
  if($hour != ''){
    if($hour == 1){
      $final = $hour . ' hour ' . $final;
    }
    else{
      $final = $hour . ' hours ' . $final;
    }
  }
  if($day != ''){
    if($day == 1){
      $final = $day . ' day ' . $final;
    }
    else{
      $final = $day . ' days ' . $final;
    }
  }
  if($week != ''){
    if($week == 1){
      $final = $week . ' week ' . $final;
    }
    else{
      $final = $week . ' weeks ' . $final;
    }
  }
  if($year != ''){
    if($year == 1){
      $final = $year . ' year ' . $final;
    }
    else{
      $final = $year . ' years ' . $final;
    }
  }
  return $final;
}