Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/10/2010, 03:58
nomafeito
 
Fecha de Ingreso: octubre-2010
Mensajes: 69
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Procesar tiempo transcurrido

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($tiempo04);
    
$mes substr($tiempo52);
    
$dia substr($tiempo82);
    
$hora substr($tiempo112);
    
$minuto substr($tiempo142);

    
$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($tiempo016); //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($tiempo013);
    
$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($tiempo010);
    
$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($tiempo07);
    
$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;
   
}

?>