Salave a tutti, ho questa funzione per ricavare la differenza tra date

function dateTimeDiff($data){

date_default_timezone_set('Europe/Rome');

$datetime = date_create($date);
$current_date = date_format($datetime, 'Y-m-d H:i:s');



// Extract $current_date
$current_year = substr($current_date,0,4);
$current_month = substr($current_date,5,2);
$current_day = substr($current_date,8,2);

// Extract $data
$ref_year = substr($data,0,4);
$ref_month = substr($data,5,2);
$ref_day = substr($data,8,2);

// create a string like 20071021
$tempMaxDate = $current_year . $current_month . $current_day;
$tempDataRef = $ref_year . $ref_month . $ref_day;

$tempDifference = $tempMaxDate-$tempDataRef;

if($tempDifference >= 12){
$iDf = $current_month-$ref_month;

if ($iDf='1'){
echo 'un ' .$iDf .' mese fa';
}else{
echo 'circa ' .$iDf .' mesi fa';
}

} else {
// Extract $current_date H:m:ss
$current_hour = substr($current_date,11,2);
$current_min = substr($current_date,14,2);
$current_seconds = substr($current_date,17,2);
// Extract $data Date H:m:ss
$ref_hour = substr($data,11,2);
$ref_min = substr($data,14,2);
$ref_seconds = substr($data,17,2);

$dDf = $current_day-$ref_day;
$hDf = $current_hour-$ref_hour;
$mDf = $current_min-$ref_min;
$sDf = $current_seconds-$ref_seconds;



if($dDf<1){
// Hours
if($hDf>0){
if($mDf<0){
$mDf = 60 + $mDf;
$hDf = $hDf -1;
if ($hDf='1'){
$ora="ora";
}else{
$ora="ore";
}
echo 'circa ' .$hDf. ' '.$ora.' fa ';
} else {
echo $mDf .' minuti fa ';
}
} elseif($hDf<1){

if($mDf>0){
echo $mDf . ' minuti fa ';
} else {
echo $sDf . ' secondi fa ';
}


}



} else {
if($dDf='1'){
echo $dDf . ' giorno fa ' ;
}else{
echo $dDf . ' giorni fa ' ;
}
}
}
}

praticamente i munuti non funzionano bene qualcuno mi puoi dare una mano? Grazie in anticipo