Voici:
Código PHP:
<?php
function tiempopasado($tiempo)
{
$tiempoactual = strftime("%Y-%m-%d %H:%M");
$year = substr($tiempo, 0, 4);
$mes = substr($tiempo, 5, 2);
$dia = substr($tiempo, 8, 2);
$hora = substr($tiempo, 11, 2);
$minuto = substr($tiempo, 14, 2);
$yearactual = strftime("%Y");
$mesactual = strftime("%m");
$diaactual = strftime("%d");
$horaactual = strftime("%H");
$minutoactual = strftime("%M");
$comptime = (($hora * 60) + $minuto);
$comptimeact = (($horaactual * 60) + $minutoactual); //compara si la fecha actual es anterior a la leida, si es así..
if ($comptimeact < $comptime) { //.. no tiene sentido seguir.
return "error salida hora";
}
$date = substr($tiempo, 0, 16); //fuera segundos de tabla DATETIME
$dateactual = $yearactual . "-" . $mesactual . "-" . $diaactual . " " . $horaactual .
":" . $minutoactual;
if ($date == $dateactual) {
$sale = "menos de 1 minuto";
return $sale;
}
$date = substr($tiempo, 0, 13);
$dateactual = $yearactual . "-" . $mesactual . "-" . $diaactual . " " . $horaactual;
$testtime = $minutoactual - $minuto;
if (($date == $dateactual) && ($testtime < 2)) {
$sale = "1 minuto";
return $sale;
}
if ($date == $dateactual) {
$sale = $testtime . " minutos";
return $sale;
}
$date = substr($tiempo, 0, 10);
$dateactual = $yearactual . "-" . $mesactual . "-" . $diaactual;
$testtime = $horaactual - $hora;
if (($date == $dateactual) && ($testtime < 2)) {
$sale = "1 hora";
return $sale;
}
if ($date == $dateactual) {
$sale = $testtime . " horas";
return $sale;
}
$date = substr($tiempo, 0, 7);
$dateactual = $yearactual . "-" . $mesactual;
$testtime = $diaactual - $dia;
if (($date == $dateactual) && ($testtime < 2)) {
$sale = "ayer a las " . $hora . ":" . $minuto;
return $sale;
}
if ($date == $dateactual) {
$sale = $testtime . " dias";
return $sale;
}
$totalmeses = (($year - 2000) * 12) + $mes;
$totalmesesactual = (($yearactual - 2000) * 12) + $mesactual;
if ($totalmesesactual <= $totalmeses) {
return "error fechas salida";
}
$totalmesesactual = $totalmesesactual - $totalmeses;
if ($totalmesesactual < 12) {
$sale = $totalmesesactual . " meses" . $totalmesesactual;
return $sale;
}
if ($totalmesesactual == 12) {
$sale = "1 año" . $totalmesesactual;
return $sale;
}
if (($totalmesesactual > 12) && ($totalmesesactual < 23)) {
$sale = "mas de 1 año" . $totalmeses;
return $sale;
}
if ($totalmesesactual > 23) {
$testtime = (round($totalmesesactual / 12));
$sale = $testtime . " años" . $totalmeses;
return $sale;
}
return "salida error";
}
?>
La cosa es que... no estoy contento, estoy seguro que se puede optimizar (como todo), porque no quiero usar tanto recurso de servidor, si teneis alguna idea...
..a vuestra disposición!