Introdução
Neste laboratório, exploraremos a função formatSeconds em JavaScript. Esta função retorna o formato ISO de um determinado número de segundos, dividindo os segundos em valores apropriados para horas, minutos e segundos. Aprenderemos como usar Array.prototype.map(), Math.floor(), String.prototype.padStart() e Array.prototype.join() para formatar e combinar os valores em uma string. Ao final deste laboratório, você terá uma sólida compreensão de como manipular e formatar dados de tempo em JavaScript.
Função para Formatar Segundos como Tempo ISO
Para usar este código, abra o Terminal/SSH e digite node. Esta função recebe um número de segundos como argumento e retorna o formato de tempo ISO. Veja como funciona:
- Divida o número de segundos pelos valores apropriados para obter os valores correspondentes para
hora(hour),minuto(minute) esegundo(second). - Armazene o sinal do número em uma variável para adicioná-lo ao resultado.
- Use
Array.prototype.map()em combinação comMath.floor()eString.prototype.padStart()para transformar em string e formatar cada segmento. - Use
Array.prototype.join()para combinar os valores em uma string.
Aqui está o código:
const formatSeconds = (s) => {
const [hour, minute, second, sign] =
s > 0
? [s / 3600, (s / 60) % 60, s % 60, ""]
: [-s / 3600, (-s / 60) % 60, -s % 60, "-"];
return (
sign +
[hour, minute, second]
.map((v) => `${Math.floor(v)}`.padStart(2, "0"))
.join(":")
);
};
Você pode testar a função com estes exemplos:
formatSeconds(200); // '00:03:20'
formatSeconds(-200); // '-00:03:20'
formatSeconds(99999); // '27:46:39'
Resumo
Parabéns! Você concluiu o laboratório de Conversão de Número de Segundos para Formato ISO. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.