Вы можете превратить метку времени в объект даты и сравнить ее с локальным (или некоторым другим) объектом даты. Затем классифицировать ответ, основанный на различии:
// Expects ISO8601 long format, no decimals of seconds
function localDateFromUTC(s) {
var x = s.split(/[-\s:tz]/i);
var d = Date.UTC(x[0], x[1], x[2], x[3], x[4], x[5], 0);
return new Date(d);
}
function aboutTime(s) {
var r = Math.round;
var now = new Date();
var then = localDateFromUTC(s);
var diff = r((now - then)/1000); // Convert to seconds
if (diff < 10) return 'a few seconds ago';
if (diff < 50) return 'less than a minute ago';
if (diff < 70) return 'about a minute ago';
if (diff < 35000) return 'about ' + r(diff/60) + ' minutes ago';
if (diff < 8.64e4) return 'about ' + r(diff/3600) + ' hours ago';
if (diff < 6.048e5) return 'about ' + r(diff/8.64e4) + ' days ago';
// and so on
return 'about ' + r(diff/6.048e5) + ' weeks ago';
}
alert(aboutTime('2008-07-17T09:24:17Z')); // about 200 weeks ago
Вы можете получить более умны относительно того, как число превращают в «о» строках (например, объект со свойствами, связанных с «о» время, а затем преобразовать номер к имени свойства).
В чем проблема с подключенным плагином timeago? Это слишком мелкозернистый? – acattle
Что вы действительно хотите? –
Есть много вопросов об этом в миллионах мест в Интернете. – ddlshack