El préstamo de la mayor parte de la respuesta de Guffa, esto debe hacer el truco como un plugin de jQuery:
jQuery.fn.time_from_seconds = function() {
return this.each(function() {
var t = parseInt($(this).text(), 10);
$(this).data('original', t);
var h = Math.floor(t/3600);
t %= 3600;
var m = Math.floor(t/60);
var s = Math.floor(t % 60);
$(this).text((h > 0 ? h + ' hour' + ((h > 1) ? 's ' : ' ') : '') +
(m > 0 ? m + ' minute' + ((m > 1) ? 's ' : ' ') : '') +
s + ' second' + ((s > 1) ? 's' : ''));
});
};
Si usted tiene HTML de esta manera:
<span class='time'>67</span>
<span class='time'>953</span>
<span class='time'>3869</span>
Y se llama así:
$('.time').time_from_seconds();
El HTML es convertido a:
<span class="time">1 minute 7 seconds</span>
<span class="time">15 minutes 53 seconds</span>
<span class="time">1 hour 4 minutes 29 seconds</span>
Cada elemento también tiene un data attribute de 'original' con los segundos que contenía originalmente.
Mi respuesta responde directamente a su pregunta, pero voy a tomar una foto en la oscuridad: si desea mostrar cuánto tiempo pasó algo en el tiempo humano (es decir, "5 minutos atrás") está el jQuery timeago plugin para esto. Sin embargo, no creo que acepte segundos como el formato. Tiene que ser una fecha ISO 8601.
creo que esto es más de una Pregunta JavaScript que una pregunta jQuery. Lo que estás pidiendo realmente está fuera del alcance de lo que jQuery es para ... –
Probablemente tengas razón, pero pensé que lo haría relacionado a jquery en el caso de un plugin disponible ... Estoy comenzando a codificar algo ahora, pero estoy seguro de que este código está disponible en alguna parte ... – farinspace
En realidad, si recuerdo que había una publicación en el blog sobre hoe SO genera sus marcas de tiempo de una manera "amigable para los humanos" ... pensé que había algún código fuente que sería útil allí, pero parece que no puedo encontrarlo ahora. –