После установки рядом с записью появляется удобная надпись вида:
- Материал добавлен 5 минут назад
- Материал добавлен 2 часа 15 минут назад
- Материал добавлен 3 дня назад
Скрипт использует стандартную переменную uCoz $TIMESTAMP$, которая содержит время добавления материала, и в режиме реального времени пересчитывает прошедшее время каждую секунду.
Возможности скрипта:
- автоматический расчет дней, часов, минут и секунд;
- правильное склонение слов в русском языке;
- обновление без перезагрузки страницы;
- совместимость с материалами uCoz;
- отсутствие сторонних библиотек;
- легкая установка в шаблон сайта.
Установка:
Код
<span id="d$ID$"></span>
<script>
(function () {
const output = document.getElementById("d$ID$");
if (!output) return;
const words = {
day: ["день", "дня", "дней"],
hour: ["час", "часа", "часов"],
minute: ["минуту", "минуты", "минут"],
second: ["секунду", "секунды", "секунд"]
};
function declension(number, titles) {
const mod10 = number % 10;
const mod100 = number % 100;
if (mod10 === 1 && mod100 !== 11) {
return titles[0];
}
if (mod10 >= 2 && mod10 <= 4 &&
(mod100 < 10 || mod100 >= 20)) {
return titles[1];
}
return titles[2];
}
function getText(value) {
let seconds = Math.floor((value - ($TIMESTAMP$ * 1000)) / 1000);
if (seconds < 0) seconds = 0;
const days = Math.floor(seconds / 86400);
seconds %= 86400;
const hours = Math.floor(seconds / 3600);
seconds %= 3600;
const minutes = Math.floor(seconds / 60);
const secs = seconds % 60;
let result = "Материал добавлен";
if (days) {
result += " " + days + " " + declension(days, words.day);
}
if (hours) {
result += " " + hours + " " + declension(hours, words.hour);
}
if (minutes) {
result += " " + minutes + " " + declension(minutes, words.minute);
}
if (secs) {
result += " " + secs + " " + declension(secs, words.second);
}
output.innerHTML = result + " назад";
}
function update() {
getText(Date.now());
}
update();
setInterval(update, 1000);
})();
</script>
<script>
(function () {
const output = document.getElementById("d$ID$");
if (!output) return;
const words = {
day: ["день", "дня", "дней"],
hour: ["час", "часа", "часов"],
minute: ["минуту", "минуты", "минут"],
second: ["секунду", "секунды", "секунд"]
};
function declension(number, titles) {
const mod10 = number % 10;
const mod100 = number % 100;
if (mod10 === 1 && mod100 !== 11) {
return titles[0];
}
if (mod10 >= 2 && mod10 <= 4 &&
(mod100 < 10 || mod100 >= 20)) {
return titles[1];
}
return titles[2];
}
function getText(value) {
let seconds = Math.floor((value - ($TIMESTAMP$ * 1000)) / 1000);
if (seconds < 0) seconds = 0;
const days = Math.floor(seconds / 86400);
seconds %= 86400;
const hours = Math.floor(seconds / 3600);
seconds %= 3600;
const minutes = Math.floor(seconds / 60);
const secs = seconds % 60;
let result = "Материал добавлен";
if (days) {
result += " " + days + " " + declension(days, words.day);
}
if (hours) {
result += " " + hours + " " + declension(hours, words.hour);
}
if (minutes) {
result += " " + minutes + " " + declension(minutes, words.minute);
}
if (secs) {
result += " " + secs + " " + declension(secs, words.second);
}
output.innerHTML = result + " назад";
}
function update() {
getText(Date.now());
}
update();
setInterval(update, 1000);
})();
</script>
Добавьте данный код в шаблон материала или страницу вывода записей.
Разместите его там, где необходимо показывать время публикации.
Сохраните изменения.
После установки время будет автоматически отображаться возле каждого материала.
Принцип работы:
Скрипт получает дату публикации через переменную uCoz $TIMESTAMP$, сравнивает её с текущим временем пользователя и выводит разницу в удобном для чтения формате.
В отличие от обычного вывода даты публикации, такой вариант делает сайт более современным и похожим на популярные социальные сети, где используется формат «назад».
Скрипт полностью работает на JavaScript и не требует дополнительных настроек.

Комментарии ()
Присоединиться к обсуждению
Поделитесь мнением об этом материале — комментарий появится в списке слева сразу после отправки.