@Pitman77

Как поправить скрипт? Как из UNIX time считать в обратном порядке и дни?

Здравствуйте!
На просторах интернета нашел скрипт, который 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>
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
Fzero0
@Fzero0
Вечный студент
Это старый скрипт для сайтов Ucoz
В условии нет проверки дней
соответственно в функцию corrDate() и нигде не передается массив склонений названий ['день', 'дня', 'дней'] что то вроде такого res = corrDate(text[0], day)
Что бы все это заработало скорее всего нужно добавить условие сколько прошло дней с даты и часов если они равны нулю то считать минуты и секунды если нет то часы и дни
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы