2017-11-02 3 views
1

Beschreibung des Themas zurückkehren und Schritte zum Reproduzieren:Momentjs diff und humanisieren dann denselben Ausgang für entgegengesetzte Werte

Ich bin mit neuesten (2.19.1) Version Moment Bibliothek. Ich habe ein Eingabedatum (sagen wir heute 17:00 Uhr) und subtrahiere es von der aktuellen Zeit und humanize es dann.

moment.duration(moment({hour:17}).diff(moment({hour:16, minute:45}))).humanize() //output: 15 minutes 
moment.duration(moment({hour:17}).diff(moment({hour:17, minute:15}))).humanize() //output: 15 minutes 

Für Zeile 2 oben sollte es Ausgang von Zeile 1 unterscheiden, die genau gegenüber ist.

Basierend auf dem Ergebnis von humanize, zeige ich Nachricht auf UI, wie '15 Minuten verbleibend '. Aber wegen der gleichen Ausgabe für entgegengesetzte Werte kann ich keine richtige Nachricht anzeigen.

Obwohl ich dieses Problem mit Momentjs Team bei github als auch aufgeworfen habe, aber wundernd, wenn jemand hier auf stackoverflow helfen kann. endungs ​​

Antwort

1

Sie humanize(true)

standardmäßig verwenden können, ist die Rückkehr String. Wenn Sie ein Suffix haben möchten, übergeben Sie es wie unten gezeigt.

Hier ein Live-Beispiel:

console.log(moment.duration(moment({hour:17}).diff(moment({hour:16, minute:45}))).humanize(true)); //output: in 15 minutes 
 
console.log(moment.duration(moment({hour:17}).diff(moment({hour:17, minute:15}))).humanize(true)); //output: 15 minutes ago
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>

Wenn Sie möchten, können Sie anpassen, wie Moment Relative TimeupdateLocale mit anzeigt.

moment.updateLocale('en', { 
 
    relativeTime : { 
 
     future: "in %s", 
 
     past: "%s remaining" 
 
    } 
 
}); 
 

 
console.log(moment.duration(moment({hour:17}).diff(moment({hour:16, minute:45}))).humanize(true)); //output: in 15 minutes 
 
console.log(moment.duration(moment({hour:17}).diff(moment({hour:17, minute:15}))).humanize(true)); //output: 15 minutes ago
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>

Verwandte Themen