English Português

La fecha en los artículos ayuda al lector a saber cuan fresca es la información y su contexto, en algunas temáticas es un dato imprescindible. El formato normal de una fecha, tipo "6 de Junio de 2010", ya ofrece suficiente información, sin embargo, no es tan rápida de interpretar como una "fecha relativa" estilo "Hace 10 minutos" o "Hace 10 días".

Servicios como Facebook o Twitter usan este formato y WordPress tiene una función sencilla para imprentarlo: human_time_diff().

Actualización: También puedes ver como hacer fechas amigables en Blogger

Fechas amigables en WordPress

Para usarla en los posts

Reemplaza la función que muestra la fecha en todos los archivos de tu theme por:

<?php echo 'Hace '.human_time_diff(get_the_time('U'), current_time('timestamp')); ?></a>

Las funciones que muestran la fecha en el post suelen ser: the_date(), get_the_date(), the_time() o the_modified_date() y suele encontrarse en los archivos: single.php, index.php, archive.php, search.php y page.php.

Para comentarios:

Reemplaza la función que muestra la fecha de los comentarios en el archivo comments.php o functions.php por:

<?php echo 'Hace '.human_time_diff(get_comment_time('U'), current_time('timestamp')); ?>

Y las funciones que suelen mostrar la fecha en los comentarios son: comment_date(), get_comment_date(), comment_time() y get_comment_time().

Con esto se habilitan las fechas relativas tanto en entradas como comentarios. En lo personal, solo lo implementé en single.php y functions.php, para comentarios.

Función PHP para obtener el tiempo entre dos fechas

La función que usa WordPress para mostrar el tiempo entre dos fechas en forma de texto es la siguiente:

function human_time_diff( $from, $to = '' ) {     
    if ( empty($to) )
        $to = time();
    $diff = (int) abs($to - $from);
    if ($diff <= 3600) {
        $mins = round($diff / 60);
        if ($mins <= 1)
            $since = __('1 minuto');
        else
            $since = sprintf( __('%s minutos'), $mins);
    } else if (($diff <= 86400) && ($diff > 3600)) {
        $hours = round($diff / 3600);
        if ($hours <= 1)
            $since = __('1 hora');
        else 
            $since = sprintf( __('%s horas'), $hours );
    } elseif ($diff >= 86400) {
        $days = round($diff / 86400);
        if ($days <= 1)
            $since = __('1 d&iacute;a');
        else
            $since = sprintf( __('%s d&iacute;as'), $days );
    }
    return $since;
}

Que puede usarse en cualquier otra aplicación PHP que recibe dos parámetros, correspondientes a las fechas de las que se desea conocer la diferencia en tiempo.

Escrito por Francisco Oliveros

Soy un gran aficionado del diseño y de todo lo que el código puede comunicar. Ingeniero mecánico por profesión, pero dedicado al desarrollo web a tiempo completo.

Blog / Twitter

Artículos relacionados

Sigue leyendo consejos, tips y tutoriales para tu blog.

    Comentarios

    1. Jose, a secas / Hace 6 años /

      Hola Francisco. ¿este hack se podría implementar en Blogger?.

      Un saludo y gracias 😉

      Responder a Jose, a secas →
    2. uFercho / Hace 6 años /

      Gracias mi pana primera vez q te escribo pero no es primera vez q me aportas algo te felicito mi pana buen trabajo sigue asi

      Responder a uFercho →
    3. rtarrasa / Hace 6 años /

      Gracias por el aporte, yo soy nuevo en esto…
      tengo una pregunta….
      como le haces para que cambie de idioma??? ya que yo lo puse pero me lo pone en ingles
      gracias y saludos

      Responder a rtarrasa →
    4. Francisco / Hace 6 años /

      @Jose, a secas Sí es posible, pero con javascript, me daré un tiempo para ver si puedo sacar una versión para Blogger.

      Responder a Francisco →
    5. Francisco / Hace 6 años /

      @uFercho Gracias por estar por ahí entonces.

      Responder a Francisco →
    6. Francisco / Hace 6 años /

      @rtarrasa Lo hace automáticamente, para ello debes tener tu WordPress en español y con el archivo de idioma actualizado.

      Responder a Francisco →
    7. Jose, a secas / Hace 6 años /

      @Francisco: Seguro que lo consigues. Estaré pendiente 😉

      Responder a Jose, a secas →
    8. @tecnodosis / Hace 6 años /

      Muy interesante esta entrada

      Responder a @tecnodosis →
    9. Flavia / Hace 6 años /

      Hola como le pones el mensaje “Continuar leyendo”. Esta muy bueno los aportes que realizan en la pagina.

      Beso

      Responder a Flavia →
    10. lucas / Hace 4 años /

      la p** madre, rapidisimo, bueno, y efectivo. muchas gracias !!!! de verdad se los agradezco. 🙂

      Responder a lucas →

    Responder

    ¡Gracias por dejar tu opinión! Por favor procura que tus comentarios estén dentro tema, que no sean promocionales (spam), ilegales u ofensivos, de otro modo, serán borrados. Todos los enlaces serán moderados y la URL indicada NO será enlazada.

    Blog and Web es un blog de Blógstica. Hospedado desde 2008 en Liquid Web.

    Términos de uso - Política de privacidad