Nombre de secondes au format ISO

JavaScriptJavaScriptBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer la fonction formatSeconds en JavaScript. Cette fonction renvoie le format ISO d'un nombre donné de secondes en divisant les secondes en valeurs appropriées pour les heures, les minutes et les secondes. Nous allons apprendre à utiliser Array.prototype.map(), Math.floor(), String.prototype.padStart() et Array.prototype.join() pour formater et combiner les valeurs en une chaîne de caractères. À la fin de ce laboratoire, vous aurez une compréhension solide de la manière de manipuler et de formater les données de temps en JavaScript.

Fonction pour formater les secondes au format ISO

Pour utiliser ce code, ouvrez le Terminal/SSH et tapez node. Cette fonction prend un nombre de secondes en argument et renvoie le format de temps ISO. Voici comment elle fonctionne :

  • Divisez le nombre de secondes par les valeurs appropriées pour obtenir les valeurs correspondantes pour heure, minute et seconde.
  • Stockez le signe du nombre dans une variable pour l'ajouter au début du résultat.
  • Utilisez Array.prototype.map() en combinaison avec Math.floor() et String.prototype.padStart() pour convertir en chaîne de caractères et formater chaque segment.
  • Utilisez Array.prototype.join() pour combiner les valeurs en une chaîne de caractères.

Voici le code :

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(":")
  );
};

Vous pouvez tester la fonction avec ces exemples :

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

Sommaire

Félicitations ! Vous avez terminé le laboratoire sur le nombre de secondes au format ISO. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.