2012-04-16 12 views
10

Estoy buscando una biblioteca de PHP que genere representaciones de tiempos fáciles de usar, por ejemplo, "hace dos horas" cuando la marca de tiempo es time() - 2 * 3600.Biblioteca PHP para generar marcas de tiempo relativas fáciles de usar

Hay varias preguntas con respuestas existentes y entradas de blog (1, 2, 3), pero todos contienen sólo fragmentos de código - no es una biblioteca que puedo instalar y actualizar.

Django has one, Python también tiene un standalone lib, Javascript varios (1, 2, 3), también - ¿dónde está la librería PHP?


Una biblioteca debe tener las siguientes cosas:

  • documentación
  • PERA instalable
  • comunicados regulares
  • (opcional) traducciones
+0

¿Qué califica como una biblioteca en el contexto de tu pregunta? – hakre

+0

¿Alguna razón para no usar una biblioteca de JavaScript? –

+2

No quiero depender de javascript ya que el público objetivo usa navegadores como lynx. – cweiske

Respuesta

1

Kohana clase Date proporciona fuzzy_span() método para esto. Pero no puede responder su exacta valores como "10 minutos"

0

probar este código:

$current_date_time_get_updated_on_date_format = ''; 

function get_updated_on_date_format($dt_updated, $prefix = 'Updated ', $at = 'at ') { 
    global $current_date_time_get_updated_on_date_format; 

    if ($current_date_time_get_updated_on_date_format == '') { 
     $current_date_time_get_updated_on_date_format = now(); 
    } 

    $i_second_now   = strtotime($current_date_time_get_updated_on_date_format); 
    $i_second_dt_updated = strtotime($dt_updated); 
    $i_second_diff  = $i_second_now - $i_second_dt_updated; 
    $s_return_date_format = ''; 

    if ($i_second_diff < 0) { 
     // Developers Uploading Time, Time Zone Gap Patch 
     $s_return_date_format = $prefix . $at . date('g:ia \o\n F jS, Y', strtotime($dt_updated)); 
    } else if ($i_second_diff < 60) { 
     $s_return_date_format = $prefix . $i_second_diff . ' seconds ago '; 
    } elseif ($i_second_diff < (60 * 60)) { 
     $s_return_date_format = $prefix . round(($i_second_diff/60), 0) . ' minitues ago '; 
    } elseif ($i_second_diff < (60 * 60 * 24)) { 
     $s_return_date_format = $prefix . round(($i_second_diff/(60 * 60)), 0) . ' hours ago '; 
    } else { 
     $s_return_date_format = $prefix . $at . date('g:ia \o\n F jS, Y', strtotime($dt_updated)); 
    } 

    return $s_return_date_format; 

} 

function now() { 
    // it should extract database time in this format 'YYYY-MM-DD HH:MM:SS' 
    return mysql_now_value; 
} 
+2

Pedí específicamente una biblioteca y no un fragmento de código. – cweiske

Cuestiones relacionadas