Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Photoshop, Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky

Ver más
  • 13,065 Miembros
  • 9,531 Temas
  • 3,449 Seguidores
  • 0

[Solucionado] hace cuanto tiempo de un datetime

Buenas gente, les paso mi duda: tengo un pequeño sistema de comentarios en el cual un registro de la base de datos es un datetime el cual su valor es siempre la fecha en formato 2011-12-12 20:37:26, lo que quiero es que me diga pepito comento hace ... tanto tiempo, si alguno conoce un script que haga esto me seria de gran ayuda. Saludos.
  • 0
  • 1Calificación
  • 1Seguidores
  • 135Visitas
  • 0Favoritos

9 respuestas

@emalomas10 dijo Hace más de 4 meses:

Realmente no se entiende

@martin_poipon dijo Hace más de 4 meses:

B00ST3R dijo:

Realmente no se entiende


digamos yo tengo un campo datetime en la db con el valor 2011-12-12 20:37:26, yo quiero una funcion que eso me lo pase a hace 1 min, hace una hora,hace 1 dia, hace 1 semana ... etc. Espero se entienda mejor.


¿Algo así como Taringa!?

@matman83 dijo Hace más de 4 meses:

habían hecho un aporte en la comunidad para hacer eso, buscaste?

@metrobook dijo Hace más de 4 meses:

http://www.taringa.net/comunidades/webdesign/630837/_APORTE_-plugin-jQuery-para-mostrar-diferencia-de-tiempo.html

@MaTwK dijo Hace más de 4 meses:

En una simple función PHP podrás realizar este cambio.
Tengo una hecha, está en una de mis posts...

<?php
function fechatiempo($time) { 

    if( !
is_numeric($time) ) $time strtotime($time); 
    
$elapsed time() - $time
    
$a = array( 
        
12 30 24 60 60  =>  'año'
        
30 24 60 60       =>  'mes'
        
24 60 60            =>  'día'
        
60 60                 =>  'hora'
        
60                      =>  'minuto'
        
1                       =>  'segundo' 
    
); 
    foreach (
$a as $secs => $str) { 
        
$d $elapsed $secs
        if (
$d >= 1) { 
            
$r round($d); 
            if(
$str == 'día' and $r == 1) return 'Ayer'
            if(
$str == 'mes' and $r 1$str .= 'e'
            return 
'Hace '.$r.' '.$str.($r 's' ''); 
        } 
    } 
     

?>
[code]

¿Cómo incluirla?
Fácil..
[code]
<?php
$fecha 
"2012-01-23";
echo 
fechatiempo($fecha);
?>

Espero que te sirva,
Abrazo.

@Samu22 dijo Hace más de 4 meses:

yo tengo esta funcion en un sistema

<?php
function _date_diff($start$end="NOW")
        {
                 
                  
                
$sdate strtotime($start);
                
$edate strtotime($end);
        
                
$time = ($edate $sdate) ? $edate $sdate $sdate $edate;
                
                
                
                if(
$time>=&& $time<=59) {
                        
// Seconds
                        
$timeshift $time.' seconds ';
        
                } elseif(
$time>=60 && $time<=3599) {
                        
// Minutes + Seconds
                        
$pmin = ($edate $sdate) / 60;
                        
$premin explode('.'$pmin);
                       
                        
$presec $pmin-$premin[0];
                        
$sec $presec*60;
                       
                        
$timeshift $premin[0].' min'.(($premin[0] > 1) ? 's':'').' '.round($sec,0).' sec'.(($sec[0] > 1) ? 's':'').' ';
        
                } elseif(
$time>=3600 && $time<=86399) {
                        
// Hours + Minutes
                        
$phour = ($edate $sdate) / 3600;
                        
$prehour explode('.',$phour);
                       
                        
$premin $phour-$prehour[0];
                        
$min explode('.',$premin*60);
                        
                        
$timeshift $prehour[0].' hr'.(($prehour[0] > 1) ? 's':'').' '.$min[0].' min'.(($min[0] > 1) ? 's':'').' ';
        
                } elseif(
$time>=86400) {
                        
// Days + Hours + Minutes
                        
$pday = ($edate $sdate) / 86400;
                        
$preday explode('.',$pday);
        
                        
$phour $pday-$preday[0];
                        
$prehour explode('.',$phour*24);
        
                        
$premin = ($phour*24)-$prehour[0];
                        
$min explode('.',$premin*60);                       
                        
                        
$timeshift $preday[0].' day'.(($preday[0] > 1) ? 's':'').' '.$prehour[0].' hr'.(($prehour[0] > 1) ? 's':'');
                        
//$timeshift = $preday[0].' days '.$prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';
                        
                
}
                return 
$timeshift;
        }
//Ejemplo
echo _date_diff('2011-12-12 20:37:26');
//-> 42 days 9 hrs
echo _date_diff('2011-12-12 10:37:26','2011-12-12 20:37:26');
//-> 10 hrs 0 min 
echo _date_diff('2011-12-11 19:15:26','2011-12-12 20:37:26');
//-> 1 day 1 hr



?>

Tienes que ser miembro para responder en este tema