Как я могу сделать обратный отсчет чч: мм: сс с отметкой времени 6 di git? - PullRequest
0 голосов
/ 30 мая 2020

Я сделал обратный отсчет, но он не работает должным образом. Запустите следующий рабочий фрагмент.

     tiempoUltimoCambioScrubber()

     function tiempoUltimoCambioScrubber() {
    
                var resJson;
                var now;
                var remainingTime;
                var lastChange;
                var dateux;
                var resultx;
                var trueOrFalse;
                var dateObj;
                var m;
                var h;
                var s;
                var timeString;
      
      
                setInterval(function () {
                       // the below response is the result of a HTTP request 
                        response = [ {
                            dataType : "BINARY",
                            value : true,
                            timestamp : 1590724809944,
                            annotation : null
                          }];
      
                        resJson = response;
      
                        lastChange = resJson[0].timestamp;
      
                        trueOrFalse = resJson[0].value;
      
                        now = new Date().getTime();
      
                        remainingTime = now - lastChange;
      
                        // $scope.remainingTime = remainingTime;  
      
                        dateObj = new Date(remainingTime * 1000);
                        h = dateObj.getUTCHours();
                        m = dateObj.getUTCMinutes();
                        s = dateObj.getSeconds();
      
                        timeString = h.toString().padStart(2, '0') + ':' +
                          m.toString().padStart(2, '0') + ':' +
                          s.toString().padStart(2, '0');
      
                        // $scope.timeString = timeString;
      
                        console.log(timeString); 
      
                        // if (!trueOrFalse) {
                        //     // Here I'll reset the counter to 0
                        // }               
        
                }, 1000);
              }

Вычитание соответствует максимальной отметке времени 15 минут. Поскольку объект response обновляется каждые 15 минут; remainingTime = now - lastChange; - это всегда значение, очень похожее на это: 540519 .. число 6 di git .. И мой счетчик ведет себя как сумасшедший с такой крошечной меткой времени ... Как я могу заставить этот счетчик работать с этим tiny remainingTime переменная?

Спасибо.

1 Ответ

1 голос
/ 30 мая 2020

Ваша проблема в том, что вы умножаете remainingTime на 1000 при создании dateObj, но это уже значение миллисекунды, поэтому оно не нужно. Измените эту строку на

dateObj = new Date(remainingTime);

, и счетчик будет правильно увеличиваться в секундах (как определено вашим вводом на setInterval).

tiempoUltimoCambioScrubber()

function tiempoUltimoCambioScrubber() {

  var resJson;
  var now;
  var remainingTime;
  var lastChange;
  var dateux;
  var resultx;
  var trueOrFalse;
  var dateObj;
  var m;
  var h;
  var s;
  var timeString;


  setInterval(function() {
    // the below response is the result of a HTTP request 
    response = [{
      dataType: "BINARY",
      value: true,
      timestamp: 1590724809944,
      annotation: null
    }];

    resJson = response;

    lastChange = resJson[0].timestamp;

    trueOrFalse = resJson[0].value;

    now = new Date().getTime();

    remainingTime = now - lastChange;

    // $scope.remainingTime = remainingTime;  

    dateObj = new Date(remainingTime);
    h = dateObj.getUTCHours();
    m = dateObj.getUTCMinutes();
    s = dateObj.getSeconds();

    timeString = h.toString().padStart(2, '0') + ':' +
      m.toString().padStart(2, '0') + ':' +
      s.toString().padStart(2, '0');

    // $scope.timeString = timeString;

    console.log(timeString);

    // if (!trueOrFalse) {
    //     // Here I'll reset the counter to 0
    // }               

  }, 1000);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...