Заимствуя большую часть ответа Guffa, это должно сработать как плагин 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' : ''));
});
};
Если у вас есть HTML, как это:
<span class='time'>67</span>
<span class='time'>953</span>
<span class='time'>3869</span>
И вы называете это так:
$('.time').time_from_seconds();
HTML превращается в:
<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>
Каждый элемент также имеет атрибут данных со значением «оригинал» с секундами, которые он изначально содержал.
Мой ответ прямо отвечает на ваш вопрос, но я собираюсь сделать снимок в темноте: если вы хотите показать, как давно что-то происходило в человеческое время (т. Е. «5 минут назад»), есть jQuery timeago плагин для этого. Я не думаю, что он принимает секунды в качестве формата, хотя. Это должна быть дата ISO 8601 .