0

Всем привет, у меня такая проблема. С помощью GET запроса из JSON я получаю время в виде 144223 (пример)

далее с помощью JS я перевожу это время в обычное, нам привычное 5 : 42 (пример)

мой JS

setInterval(function () {
    $.ajax({
        type: "GET",
        url: "/api/status",
        processData: true,
        dataType: 'text',
        cache: false,
        headers: ({"Auth-Secret": $("input[id='authpass']").val()}),
        success: function (data, textStatus, request) {
            var status = jQuery.parseJSON(data);
            $("input[id='streamStatus']").val(status.stream[0]);
            $("input[id='recordStatus']").val(status.record[0]);

            if (status.record[1] == "-1") {
                if (status.record[1] < 60) {
                    $("#recordDuration").text(status.record[1] + "s" + " (start)");
                } else if (status.record[1] < 3600) {
                    var minute = Math.floor(status.record[1] / 60);
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    $("#recordDuration").text(minute + ":" + second + " (start)");
                } else {
                    var hour = Math.floor(status.record[1] / 3600);
                    var minute = Math.floor(status.record[1] / 60) - hour * 60;
                    if (minute < 10) {
                        minute = "0" + minute;
                    }
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    if (hour > 99) {
                        $("#recordDuration").text(hour + "h (start)");
                    } else {
                        $("#recordDuration").text(hour + ":" + minute + ":" + second + " (start)");
                    }
                }
            } else if (status.record[1] > 0) {
                if (status.record[1] == -1) {
                    $("#recordDuration").text("infinite (no stop)");
                }
                else if (status.time < 60) {
                    $("#recordDuration").text(status.record[1] + "s" + " (stop)");
                } else if (status.record[1] < 3600) {
                    var minute = Math.floor(status.record[1] / 60);
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    $("#recordDuration").text(minute + ":" + second + " (stop)");
                } else {
                    var hour = Math.floor(status.record[1] / 3600);
                    var minute = Math.floor(status.record[1] / 60) - hour * 60;
                    if (minute < 10) {
                        minute = "0" + minute;
                    }
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    if (hour > 99) {
                        $("#recordDuration").text(hour + "h (stop)");
                    } else {
                        $("#recordDuration").text(hour + ":" + minute + ":" + second + " (stop)");
                    }
                }

                if (status.record[1] == 0) {
                    $("#recordDuration").text("stopped");
                } else if (status.record[1] < 60) {
                    $("#recordDuration").text(status.record[1] + "s");
                } else if (status.record < 3600) {
                    var minute = Math.floor(status.record[1] / 60);
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    $("#recordDuration").text(minute + ":" + second);
                } else {
                    var hour = Math.floor(status.record[1] / 3600);
                    var minute = Math.floor(status.record[1] / 60) - hour * 60;
                    if (minute < 10) {
                        minute = "0" + minute;
                    }
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    $("#recordDuration").text(hour + ":" + minute + ":" + second);
                }
                if (status.record[1] == "0") {
                    $("#recordDuration").text("stopped");
                } else if (status.record[1] < 60) {
                    $("#recordDuration").text(status.record[1] + "s");
                } else if (status.record[1] < 3600) {
                    var minute = Math.floor(status.record[1] / 60);
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    $("#recordDuration").text(minute + ":" + second);
                } else {
                    var hour = Math.floor(status.record[1] / 3600);
                    var minute = Math.floor(status.record[1] / 60) - hour * 60;
                    if (minute < 10) {
                        minute = "0" + minute;
                    }
                    var second = status.record[1] % 60;
                    if (second < 10) {
                        second = "0" + second;
                    }
                    $("#recordDuration").text(hour + ":" + minute + ":" + second);
                }
            }
        }
    });
}, 3000);

это время должно выводится в <input> с id="recordDuration" к сожелению время не выводится. В чем проблема?

1 ответ 1

1

Попробуйте заменить

$("#recordDuration").text(hour + ":" + minute + ":" + second);

На

$("#recordDuration").val(hour + ":" + minute + ":" + second);
4
  • 1
    А если ещё <input type="time" /> будет, то вообще красота получится :)
    – MasterAlex
    21 окт 2014 в 14:02
  • 1
    Не очень. так как это еще сыровато и не поддерживается FF и IE, которые занимаю львиную долю w3schools.com/html/html5_form_input_types.asp Статистика по браузерам w3schools.com/browsers/browsers_stats.asp
    – abibock_un
    21 окт 2014 в 14:06
  • @abibock_un, а в чём проблема того, что поддерживают не все браузеры? Тут ведь 2 варианта: поставить type="text" и везде будет type="text", или поставить type="time" и те браузеры, которые поддерживают будут выдавать type="time", остальные type="text". Имхо, второй вариант выглядит интереснее
    – MasterAlex
    22 окт 2014 в 7:44
  • Согласен, но проблема объяснять заказчику почему в его "любимом браузере" не отображатся данный тип. если он увидит что выглядит круче в другом. Есть опыт.
    – abibock_un
    22 окт 2014 в 14:31

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.