Bueno, esto ya está arreglao ¿se puede optimizar mas?
Pido a un moderador que mueva esto a un subforo correspondiente de php con bases de datos mysql, disculpadme.
Código PHP:
<?php
function tiempopasado($tiempo)
{
// setlocale(LC_TIME, 'spanish'); // Eso en un apache con WINDOWS
// setlocale(LC_TIME, ‘es_ES’); // Para español- españa, es_MX para mexicano // esto en LINUX
$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 = "en un momento, hace 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 = "hace 1 minuto";
return $sale;
}
if ($date == $dateactual) {
$sale = "hace " .$testtime . " minutos";
return $sale;
}
$date = substr($tiempo, 0, 10);
$dateactual = $yearactual . "-" . $mesactual . "-" . $diaactual;
$testtime = $horaactual - $hora;
if (($date == $dateactual) && ($testtime < 2)) {
$sale = "hace 1 hora";
return $sale;
}
if ($date == $dateactual) {
$sale = "hace ".$testtime . " horas";
return $sale;
}
$date = substr($tiempo, 0, 7);
$dateactual = $yearactual . "-" . $mesactual;
$testtime = $diaactual - $dia;
if (($date == $dateactual) && ($testtime < 2)) {
$sale = "ayer";
return $sale;
}
if ($date == $dateactual) {
$sale = "hace ".$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 == 1) && ((30-$dia+$diaactual)<30)){
$sale ="hace 1 mes";
return $sale;
}
if ($totalmesesactual == 1) {
$sale ="el mes pasado";
return $sale;
}
if ($totalmesesactual < 12) {
$sale = "hace ".$totalmesesactual . " meses";
return $sale;
}
if ($totalmesesactual == 12) {
$sale = "hace 1 año";
return $sale;
}
if (($totalmesesactual > 12) && ($totalmesesactual < 23)) {
$sale = "hace mas de 1 año";
return $sale;
}
$sale = "hace ".($yearactual-$year) . " años";
return $sale;
}
?>