Función php de fecha hace x tiempo
vamos a ver una función para determinar el tiempo transcurrido de una acción en nuestra pagina web, lo primero que necesitamos es una fecha en formato timestramp que nos mostrara una fecha con el siguiente formato
$fecha='2014-01-27 05:30:10';el objetivo es que la fecha se muestre con el formato "hace 2 minutos" por ejemplo, para utilizar la función solo le tenemos que pasar la fecha para que se transforme
function tiempo_transcurrido($fecha) { if(empty($fecha)) { return "No hay fecha"; } $intervalos = array("segundo", "minuto", "hora", "día", "semana", "mes", "año"); $duraciones = array("60","60","24","7","4.35","12"); $ahora = time(); $Fecha_Unix = strtotime($fecha); if(empty($Fecha_Unix)) { return "Fecha incorracta"; } if($ahora > $Fecha_Unix) { $diferencia =$ahora - $Fecha_Unix; $tiempo = "Hace"; } else { $diferencia = $Fecha_Unix -$ahora; $tiempo = "Dentro de"; } for($j = 0; $diferencia >= $duraciones[$j] && $j < count($duraciones)-1; $j++) { $diferencia /= $duraciones[$j]; } $diferencia = round($diferencia); if($diferencia != 1) { $intervalos[5].="e"; //MESES $intervalos[$j].= "s"; } return "$tiempo $diferencia $intervalos[$j]"; }la función nos devolver el tiempo transcurrido
16
Puntos
Puntos
6635
Visitas
Visitas
5
Resp
Resp
Por alber hace 118 meses
Administrador
Respuesta #1
gracias por la función la eh probado y es justo lo que necesitaba
0
Puntos
Puntos
Por forerophp hace 118 meses
Principiante
Respuesta #3
Alber, tengo un problema con éste código. Coloco la función antes del <html> Y coloco <?php echo tiempo_transcurrido($fecha); ?> en un código que me genera todos los post de la base de datos con un while { } El problema es que pareciera que coge 1 solo tiempo y se lo pone a todos los post xd
Además, si coloco un tema ahorita me dice: Hace 6 horas. Aunque supongo que eso es otro tema jaja. Échame una mano, como sería la manera correcta o qué. (-:
Además, si coloco un tema ahorita me dice: Hace 6 horas. Aunque supongo que eso es otro tema jaja. Échame una mano, como sería la manera correcta o qué. (-:
Respuesta #4
a ver muestra el while tal y como tu lo haces y vemos que podemos a hacer, lo digo mas que nada para poder ejecutarlo en mi localhost y poder ayudarte
0
Puntos
Puntos
Por alber hace 118 meses
Administrador
Respuesta #5
Ve :c
<?php // SACAR DATOS DE LOS POST // Conexion y Seleccion de la base de datos. $connect; $database; // Páginación // Maximo por pagina $PageLimit = 4; // Pagina solicitada if (isset($_GET['Page'])) { $Page = (int) $_GET["Page"]; if ($Page < 1) { $Page = 1; } } else { $Page = 1; } $ResultFrom = ($Page-1) * $PageLimit; // Consulta de datos $SQL_GetDatosPost = 'select sql_calc_found_rows * from jpost order by id desc LIMIT '.$ResultFrom.','.$PageLimit.''; $SQL_Total = 'select found_rows() as totalpage'; $GetDatosPost = mysql_query($SQL_GetDatosPost); $Rs_Total = mysql_query($SQL_Total); $rowTotal = mysql_fetch_assoc($Rs_Total); // Total de registros sin limit $Total = $rowTotal["totalpage"]; // Total de Páginas $TotalPage = ceil($Total/$PageLimit); ?> <?php if ($Page > $TotalPage) { echo '<article><strong><h1>Error</h1></strong><br> This page has no results to show<br> <a href="index.php">Volver</a></article>' ; } else { while($GetPost=@mysql_fetch_assoc($GetDatosPost)) { $CommentCount_query = mysql_query('select sql_calc_found_rows reference from jcomment where reference="'.$GetPost['id'].'"'); $Comment_Total = mysql_query('select found_rows() as comment'); $CommentTotal = mysql_fetch_assoc($Comment_Total); $TotalComment = $CommentTotal['comment']; $fechacompleta = (($GetPost['datecomplete'])-('84:00:00')); ?> <article class="pre_article"> <div class="pre_article_title"> <a href="<?php echo $urlWeb; ?>ver.php?post=<?php echo $GetPost['id'];?>" class="link_title_article"> <?php echo $GetPost['title']; ?></a> </div> <div class="pre_article_picture"> <img src="http://www.iede.co.uk/sites/www.iede.co.uk/files/3264147579_46706d46c4_z.jpg" width="260px"> </div> <div class="pre_article_text"> <time><?php echo tiempo_transcurrido($fechacompleta); ?></time> <p><?php $text = $GetPost['post']; echo substr(auto_link($text),0,350); ?>...</p> <button class="btn btn-primary">Leer más</button> </div> </article> <?php } } ?> // Aqui va el código de paginación