Wie kann ich diese komplette Dauer in moment.js / javascript vermenschlichen?

8

Ich habe einen Zähler für die verbleibende Zeit für das Hochladen von Dateien. Die verbleibende Dauer wird wie folgt berechnet und in Millisekunden konvertiert:

%Vor%

Ich baue dann ein Array, das ich in eine humanisierte Zeichenfolge einbauen möchte. Das Array ist wie folgt:

%Vor%

Das alles funktioniert perfekt und wenn ich eine String-Darstellung dieser Daten ausspreche:

%Vor%

I es gibt einen schönen einfachen Strom der verbleibenden Zeit wie folgt zurück:

%Vor%

Was ich jetzt tun muss, ist diese Ausgabe zu vermenschlichen, so dass die Zeichenkette abhängig von der verbleibenden Zeit aufgebaut wird. z. B.

  • 2 Jahre und 3 Monate verbleibend
  • 1 Stunde, 32 Minuten und 41 Sekunden verbleibend
  • Noch 7 Sekunden
  • 3 Minuten 46 Sekunden verbleibend
  • Noch 6 Sekunden

etc ... etc ...

Jetzt weiß ich, dass moment.js die Fähigkeit hat, Dauern automatisch zu humanisieren, was für einzelne Werte gut funktioniert, aber dies kann mehrere mögliche Werte haben (Stunden / Minuten / Sekunden usw.)

Wie kann ich diese Daten entweder mit moment.js personalisieren oder manuell erstellen?

Vielen Dank im Voraus.

    
gordyr 04.01.2013, 12:37
quelle

3 Antworten

7

Ich denke, Ihre beste Wette wäre etwa so:

%Vor%

Alternativ können Sie diese Funktion verwenden:

%Vor%

Er gibt "x <time> and y <time> remaining" für die 2 größten Werte zurück. (Oder nur Sekunden im letzten Fall.

    
Cerbrus 04.01.2013, 12:44
quelle
9

Meine HumanizeDuration.js -Bibliothek klingt genau nach Ihren Vorstellungen:

%Vor%

Sieht so aus, als wäre meine Antwort ein bisschen spät, aber vielleicht hilft es anderen, diese Frage zu sehen!

    
Evan Hahn 17.02.2014 22:34
quelle
2
___ qstnhdr ___ Wie kann ich diese komplette Dauer in moment.js / javascript vermenschlichen? ___ answer21840646 ___

Meine HumanizeDuration.js -Bibliothek klingt genau nach Ihren Vorstellungen:

%Vor%

Sieht so aus, als wäre meine Antwort ein bisschen spät, aber vielleicht hilft es anderen, diese Frage zu sehen!

    
___ answer3955798 ___

Sie sollten dieses Plugin ausprobieren: Moment-Dauer-Format

Seine Syntax ist sehr praktisch:

%Vor%     
___ qstntxt ___

Ich habe einen Zähler für die verbleibende Zeit für das Hochladen von Dateien. Die verbleibende Dauer wird wie folgt berechnet und in Millisekunden konvertiert:

%Vor%

Ich baue dann ein Array, das ich in eine humanisierte Zeichenfolge einbauen möchte. Das Array ist wie folgt:

%Vor%

Das alles funktioniert perfekt und wenn ich eine String-Darstellung dieser Daten ausspreche:

%Vor%

I es gibt einen schönen einfachen Strom der verbleibenden Zeit wie folgt zurück:

%Vor%

Was ich jetzt tun muss, ist diese Ausgabe zu vermenschlichen, so dass die Zeichenkette abhängig von der verbleibenden Zeit aufgebaut wird. z. B.

  • 2 Jahre und 3 Monate verbleibend
  • 1 Stunde, 32 Minuten und 41 Sekunden verbleibend
  • Noch 7 Sekunden
  • 3 Minuten 46 Sekunden verbleibend
  • Noch 6 Sekunden

etc ... etc ...

Jetzt weiß ich, dass moment.js die Fähigkeit hat, Dauern automatisch zu humanisieren, was für einzelne Werte gut funktioniert, aber dies kann mehrere mögliche Werte haben (Stunden / Minuten / Sekunden usw.)

Wie kann ich diese Daten entweder mit moment.js personalisieren oder manuell erstellen?

Vielen Dank im Voraus.

    
___ tag123momentjs ___ Eine vereinfachte JavaScript-Datumbibliothek zum Analysieren, Bearbeiten und Formatieren von Datumsangaben. Verwenden Sie dieses Tag für Probleme mit Moment-, Moment-Zeitzone- und beliebigen Moment-Plugins. ___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer14157442 ___

Ich denke, Ihre beste Wette wäre etwa so:

%Vor%

Alternativ können Sie diese Funktion verwenden:

%Vor%

Er gibt %code% für die 2 größten Werte zurück. (Oder nur Sekunden im letzten Fall.

    
___
Hoang Le 12.08.2015 04:02
quelle

Tags und Links