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

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

Comentarios

  1. Jose, a secas / Hace 586 días /

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

    Un saludo y gracias ;)

    Responder a Jose, a secas →
  2. uFercho / Hace 586 días /

    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 585 días /

    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 585 días /

    @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 585 días /

    @uFercho Gracias por estar por ahí entonces.

    Responder a Francisco →
  6. Francisco / Hace 585 días /

    @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 585 días /

    @Francisco: Seguro que lo consigues. Estaré pendiente ;)

    Responder a Jose, a secas →
  8. @tecnodosis / Hace 584 días /

    Muy interesante esta entrada

    Responder a @tecnodosis →
  9. Flavia / Hace 580 días /

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

    Beso

    Responder a Flavia →

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.

Blog and Web es un blog de Blógstica

Términos de uso - Política de privacidad