Anzahl der Sekunden in ISO-Format

Beginner

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

Einführung

In diesem Lab werden wir die formatSeconds-Funktion in JavaScript untersuchen. Diese Funktion gibt das ISO-Format für eine gegebene Anzahl von Sekunden zurück, indem sie die Sekunden in geeignete Werte für Stunden, Minuten und Sekunden aufteilt. Wir werden lernen, wie man Array.prototype.map(), Math.floor(), String.prototype.padStart() und Array.prototype.join() verwendet, um die Werte zu formatieren und zu einer Zeichenkette zu kombinieren. Am Ende dieses Labs werden Sie eine solide Vorstellung davon haben, wie man Zeitdaten in JavaScript manipulieren und formatieren kann.

Funktion, um Sekunden als ISO-Zeit zu formatieren

Um diesen Code zu verwenden, öffnen Sie das Terminal/SSH und geben Sie node ein. Diese Funktion nimmt die Anzahl der Sekunden als Argument entgegen und gibt das ISO-Zeitenformat zurück. So funktioniert es:

  • Teilen Sie die Anzahl der Sekunden durch die entsprechenden Werte, um die entsprechenden Werte für Stunde, Minute und Sekunde zu erhalten.
  • Speichern Sie das Vorzeichen der Zahl in einer Variable, um es am Anfang des Ergebnisses anzuhaften.
  • Verwenden Sie Array.prototype.map() in Kombination mit Math.floor() und String.prototype.padStart(), um jedes Segment in eine Zeichenkette zu wandeln und zu formatieren.
  • Verwenden Sie Array.prototype.join(), um die Werte zu einer Zeichenkette zu kombinieren.

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

Sie können die Funktion mit diesen Beispielen testen:

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

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Anzahl der Sekunden in ISO-Format" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.