Menschenlesbare Zeitformatierung erstellen

JavaScriptJavaScriptBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir eine Funktion namens formatDuration untersuchen, die uns hilft, eine gegebene Anzahl von Millisekunden in ein menschenlesbares Format umzuwandeln. Wir werden lernen, wie mathematische Operationen verwendet werden, um die entsprechenden Werte für Tage, Stunden, Minuten, Sekunden und Millisekunden zu extrahieren. Wir werden auch verschiedene Array-Methoden wie filter, map und join verwenden, um einen String zu erstellen, der die Dauer auf benutzerfreundliche Weise anzeigt. Am Ende dieses Labs werden Sie ein tieferes Verständnis dafür haben, wie Sie zeitbezogene Daten in JavaScript manipulieren und formatieren.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 100% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Format-Dauer

Um das menschenlesbare Format einer gegebenen Anzahl von Millisekunden zu erhalten, folgen Sie diesen Schritten:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Code-Praxis zu beginnen.
  2. Teilen Sie die ms mit passenden Werten, um die passenden Werte für Tag, Stunde, Minute, Sekunde und Millisekunde zu erhalten.
  3. Verwenden Sie Object.entries() mit Array.prototype.filter(), um nur die nicht null-Werte zu behalten.
  4. Erstellen Sie den String für jeden Wert, indem Sie die Pluralform entsprechend verwenden, mit Array.prototype.map().
  5. Verbinden Sie die Werte zu einem String, indem Sie Array.prototype.join() verwenden.

Hier ist der Code:

const formatDuration = (ms) => {
  if (ms < 0) ms = -ms;
  const time = {
    day: Math.floor(ms / 86400000),
    hour: Math.floor(ms / 3600000) % 24,
    minute: Math.floor(ms / 60000) % 60,
    second: Math.floor(ms / 1000) % 60,
    millisecond: Math.floor(ms) % 1000
  };
  return Object.entries(time)
    .filter((val) => val[1] !== 0)
    .map(([key, val]) => `${val} ${key}${val !== 1 ? "s" : ""}`)
    .join(", ");
};

Hier sind einige Beispiele:

formatDuration(1001); // '1 Sekunde, 1 Millisekunde'
formatDuration(34325055574);
// '397 Tage, 6 Stunden, 44 Minuten, 15 Sekunden, 574 Millisekunden'

Zusammenfassung

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