как получать минуты с десятичными секунд, javascript, timestamp?

в настоящее время я получаю различие timestamp, вышеупомянутое различие понимают, что - timestamp стоимости минута.

 vm.horario_firebase = data.val() + Date.now();
 let tiempo_faltante  = ultima_fecha_vecimiento-vm.horario_firebase ; //obteniendo la deferencia de timestamp
 console.log("ESTE ES EL TIEMPO QUE LE FALTA AL CRONOMETRO, TIMESTAMP");
 console.log(tiempo_faltante);
 let minutos = new Date(tiempo_faltante).getMinutes()*60/60; //De esta forma obtengo el valor del timestamp en minutos
 console.log("MINUTOS INGRESADOS");
 console.log(minutos); // 9 (valor de ejemplo, devuelve un entero)

Деталь, которая у меня есть, состоит в том, что в этом различии timestamp, в Вашем вычитании, они существуют вторые, тогда в момент показывания в переменной minutos покажи Вашу стоимость в целом числе, как я могу получать с Вашим десятичным, пример, 9.5 что равнялось бы в 9 минут со столькими секундами.

Заранее большое спасибо.

0
задан 20.03.2019, 01:44
1 ответ

На данный момент, это, о котором я смог думать:

const texto = document.getElementById("texto");
const tiempo_total = parseInt(texto.textContent);
const initialData = new Date();
const minutosIniciales = initialData.getMinutes();
let minutos_restantes;

function getDifference(initialMinutes,initialMinutesData){

    const data = new Date();
    const actual_minutes = data.getMinutes();
    const actual_seconds = data.getSeconds();
    
    let floatDiff = Math.abs(initialMinutes - (actual_minutes - initialMinutesData));
    /*Esta operación hará que te muestre los decimales (Si los hay) del segundo en el que*/
    floatDiff -= (actual_seconds / 60);

    return floatDiff;
}

//Esta función es opcional pero la uso para obtener solo dos numeros apartir de la coma
function sliceFloatPoints(decimals,num){

    let result = 0;
    let stringNum = num.toString();
    let cutIndex = stringNum.indexOf(".");
    let currDecimals;
    let currLen;
    
    currDecimals = cutIndex !== -1 ? stringNum.slice(cutIndex + 1) : 0;
    currDecimals = currDecimals.length >= decimals ? currDecimals.slice(0, decimals) : currDecimals;
    currLen = currDecimals.length;
    result = cutIndex !== -1 ? parseInt(num.toString()) + (currDecimals / Math.pow(10,currLen)) : num;
    return result;
}

function calculate(){

    minutos_restantes = getDifference(tiempo_total,minutosIniciales);
    texto.textContent = sliceFloatPoints(2,minutos_restantes);/*Es opcional usar esta función, si quieres obtener 
                                                                todos los puntos decimales, coloca minutos_restantes
                                                                como valor*/

}

setInterval(calculate, 0);
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Cronometro</title>
</head>
<body>
	<center><div class="texto" id = "texto">10</div></center>
</body>
</html>

cГіdigo то, что он делает, состоит в том, что посредством элемента html он получает число от, который идет, в том, чтобы инициализировать обратный счет, инициализируют tambiГ©n другие начальные переменные времени, эти они начинаются Объектом Восходите, кроме того эти статические, а именно никогда не будут меняться, это благодаря тому, что нам нужно, чтобы эта стоимость (все минуты он будет считать назад), не изменилась.

funciГіn getDifference то, что он делает, состоит в том, чтобы получать различие времени, которое есть между первым и единственным разом, который инициализировалась постоянная величина minutos_iniciales, и прошедшие минуты, в настоящее время, потом уменьшает в эти минуты (Что он всегда приносит их в целых числах), вторых недостающих (В форме процентного содержания, а именно от 0 до 100), чтобы меняться с одной минуты по другую в обратном счете, а именно:.98 значит, что нет много для того, чтобы минуты decrementen.01 значит, что уже они изменятся.

funciГіn sliceFloatPoints, конвертирует число (одного montГіn десятичных), те, в которых мы нуждались despuГ©s запятой, это посредством нее funciГіn slice, которая позволяет создавать новую договоренность отрезая с неких точек, которые мы показывали бы ему в ней funciГіn, если конечный предел не определен как секунда parГЎmetro в ней funciГіn, - devolverГЎ новая договоренность направляя, как я инициализирую индекс, который мы определяем, начиная с этого начала возьмет tambiГ©n все они demГЎs стоимость.

В нашем случае, поскольку нас не интересует запятая как десятичная стоимость, что мы делаем, состоит в том, что с нею funciГіn indexOf, мы получаем индекс, в котором он находится carГЎcter, чтобы искать, в этом случае запятая (". "), если эту найдена эта funciГіn, он возвратит индекс, где находится запятая, иначе возвратит-1, тогда сейчас, когда он делается он (Если существует десятичная запятая), просто с нею funciГіn slice мы даем ему как первый parГЎmetro этот полученный индекс + 1 (Так как, того, чтобы не быть asГ - estarГ-хозяева включая снова запятую), в случае когда десятичная запятая не существует (Что число было целым), мы просто не преобразуем число.

Как только была получена плавающая или десятичная часть, просто мы используем снова эту funciГіn, чтобы укорачивать количество десятичных полученные despuГ©s с запятой до тех, в которых мы нуждаемся в случае, если число не будет целым.

Она funciГіn вычисли тебя, как он говорит Ваше имя, просто он возьмется за то, чтобы распределять недостающее время от обратного счета до переменной, потом он это показывает на экране.

ВЎEspero подал чего-то ответ!, не, если то, в чем ты нуждался. больше я это понял...

1
ответ дан 02.12.2019, 05:24

Теги

Похожие вопросы