Converter Segundos para Formato ISO

Beginner

This tutorial is from open-source community. Access the source code

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) e segundo (second).
  • Armazene o sinal do número em uma variável para adicioná-lo ao resultado.
  • Use Array.prototype.map() em combinação com Math.floor() e String.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.