Número de Segundos al Formato ISO

JavaScriptJavaScriptBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos la función formatSeconds en JavaScript. Esta función devuelve el formato ISO de un número dado de segundos dividiendo los segundos en valores adecuados para horas, minutos y segundos. Aprenderemos a usar Array.prototype.map(), Math.floor(), String.prototype.padStart() y Array.prototype.join() para formatear y combinar los valores en una cadena. Al final de este laboratorio, tendrás una comprensión sólida de cómo manipular y formatear datos de tiempo en JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/template_lit("Template Literals") subgraph Lab Skills javascript/variables -.-> lab-28318{{"Número de Segundos al Formato ISO"}} javascript/data_types -.-> lab-28318{{"Número de Segundos al Formato ISO"}} javascript/arith_ops -.-> lab-28318{{"Número de Segundos al Formato ISO"}} javascript/comp_ops -.-> lab-28318{{"Número de Segundos al Formato ISO"}} javascript/higher_funcs -.-> lab-28318{{"Número de Segundos al Formato ISO"}} javascript/template_lit -.-> lab-28318{{"Número de Segundos al Formato ISO"}} end

Función para Formatear Segundos en Formato de Tiempo ISO

Para usar este código, abre la Terminal/SSH y escribe node. Esta función toma un número de segundos como argumento y devuelve el formato de tiempo ISO. Aquí está cómo funciona:

  • Divide el número de segundos por los valores adecuados para obtener los valores correspondientes de hora, minuto y segundo.
  • Guarda el signo del número en una variable para agregarlo al principio del resultado.
  • Usa Array.prototype.map() en combinación con Math.floor() y String.prototype.padStart() para convertir a cadena y formatear cada segmento.
  • Usa Array.prototype.join() para combinar los valores en una cadena.

Aquí está el 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(":")
  );
};

Puedes probar la función con estos ejemplos:

formatSeconds(200); // '00:03:20'
formatSeconds(-200); // '-00:03:20'
formatSeconds(99999); // '27:46:39'

Resumen

¡Felicidades! Has completado el laboratorio de Conversión de Número de Segundos a Formato ISO. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.