Puede devolver cualquiera de esos valores por separado o todos juntos...
Código PHP:
Ver original
function fun_diferenciaEntreFechas($arg_fechaMenor, $arg_fechaMayor, $arg_obtener = "TODOABREVIA", $arg_redondear = true){ //Devuelve la diferencia entre 2 fechas según los parámetros ingresados. Es $arg_fechaMayor - $arg_fechaMenor //El formato de fecha recibido es: "20-09-2013 17:49:30" o un timestamp $var_segs = ""; //Por defecto $var_mins = ""; //Por defecto $var_horas = ""; //Por defecto $var_dias = ""; //Por defecto $var_semanas = ""; //Por defecto $var_meses = ""; //Por defecto $var_anyos = ""; //Por defecto $var_fechaMenor = 0; //Por defecto $var_fechaMayor = 0; //Por defecto }else{$var_fechaMayor = $arg_fechaMayor;} }else{$var_fechaMenor = $arg_fechaMenor;} $var_resultadoTotalSegs = $var_fechaMayor - $var_fechaMenor; //Resultado en segundos $var_resultadoTotalFinal = ""; //Por defecto switch ($arg_obtener) { case "SEGUNDOS":{ $var_resultadoTotalFinal = $var_resultadoTotalSegs; break; } case "MINUTOS":{ $var_resultadoTotalFinal = $var_resultadoTotalSegs/60; break; } case "HORAS":{ $var_resultadoTotalFinal = $var_resultadoTotalSegs/60/60; break; } case "DIAS":{ $var_resultadoTotalFinal = $var_resultadoTotalSegs/60/60/24; break; } case "SEMANAS":{ $var_resultadoTotalFinal = $var_resultadoTotalSegs/60/60/24/7; break; } case "MESES":{ $var_resultadoTotalFinal = $var_resultadoTotalSegs/60/60/24/30; break; } case "ANYOS":{ $var_resultadoTotalFinal = $var_resultadoTotalSegs/60/60/24/365; break; } case "TODOABREVIA":{ //Averiguamos el resto de unidades a partir de los segundos... //DIAS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_dias*60*60*24); if($var_dias>0){$var_resultadoTotalFinal .= $var_dias . "d ";} //HORAS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_horas*60*60); if($var_horas>0){$var_resultadoTotalFinal .= $var_horas . "h ";} //MINUTOS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_minutos*60); echo $var_resultadoTotalFinal; if($var_minutos>0){$var_resultadoTotalFinal .= $var_minutos . "m ";} //SEGUNDOS $var_resultadoTotalFinal .= $var_resultadoTotalSegs . "s"; break; } case "TODOFULL":{ //Averiguamos el resto de unidades a partir de los segundos... //ANYOS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_anyos*60*60*24*365); if($var_anyos>0){$var_resultadoTotalFinal .= $var_anyos . "a ";} //MESES $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_meses*60*60*24*30); if($var_meses>0){$var_resultadoTotalFinal .= $var_meses . "mes ";} //SEMANAS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_semanas*60*60*24*7); if($var_semanas>0){$var_resultadoTotalFinal .= $var_semanas . "sem ";} //DIAS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_dias*60*60*24); if($var_dias>0){$var_resultadoTotalFinal .= $var_dias . "d ";} //HORAS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_horas*60*60); if($var_horas>0){$var_resultadoTotalFinal .= $var_horas . "h ";} //MINUTOS $var_resultadoTotalSegs = $var_resultadoTotalSegs - ($var_minutos*60); if($var_minutos>0){$var_resultadoTotalFinal .= $var_minutos . "m ";} //SEGUNDOS $var_resultadoTotalFinal .= $var_resultadoTotalSegs . "s"; break; } } return ($var_resultadoTotalFinal); }