Здравствуйте!
На просторах интернета нашел скрипт, который timestamp переводит в отсчет сколько минут, часов назад добавлен материал. Проблема в том, что он не считает дни. Кручу его и так и сяк уже который день, ничего не получается, знаний в JS не хватает, что бы понять.
Может кто-то уже сталкивался с подобным и поможет дописать или пересобрать скрипт, что бы он считал сколько секунд, минут, часов, а затем дней назад был добавлен материал?
Спасибо!
<span id="add_time"></span>
<script type="text/javascript">
function corrDate(t, n) {
return n != 0 ? " " + n + " " + t[n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2] + ", " : "";
};
(function(time) {
var everySecond = true,
ar = arguments,
_ = Math.ceil((time - (1552846855 * 1000)) / (1000)),
day, hour, min, sec, text = [
['день', 'дня', 'дней'],
['час', 'часа', 'часов'],
['минуту', 'минуты', 'минут'],
['секунду', 'секунды', 'секунд']
],
res;
day = Math.floor((_ / 86400));
_ = _ - (day * 86400);
hour = Math.floor((_ / 3600));
_ = _ - (hour * 3600);
min = Math.floor((_ / 60));
_ = _ - (min * 60);
if (min > 0) {
if (min == 1) {
res = '1 минуту назад'
} else {
if (hour > 0) {
if (hour == '1') {
res = '1 час назад'
} else {
res = corrDate(text[1], hour)
}
} else {
res = corrDate(text[2], min)
}
}
} else {
res = 'Меньше минуты назад'
}
document.getElementById("add_time").innerHTML = res.replace(/\,\s$/, " назад");
if (everySecond) {
setTimeout(function() {
ar.callee(new Date().getTime());
}, 1000);
}
})(new Date().getTime());
</script>