Ich möchte die moment().fromNow()
Funktionalität, aber wenn das Datum nahe ist, ist es zu genau - z. Ich möchte nicht, dass es "in 3 Stunden" angezeigt wird, sondern "heute" - also im Grunde genommen mit einer "täglichen" Präzision.
Ich habe versucht, die moment().calendar()
Funktion zu verwenden. Sie wird nicht formatiert, wenn der Datumsunterschied mehr als 1 Tag beträgt
javascript
date
momentjs
Ziarno
quelle
quelle
new Date()
, eine Warnung zu vermeiden, die mir die Bibliothek immer wieder gibt (siehe momentjs.com/docs/#/parsing/now )new Date()
erforderlich? Ich dachtemoment()
, dass mit dem heutigen Datum ohnehin ein Moment erzeugt wurdeSie können die Art
.fromNow
und Weise anpassen, in der sowohl die als auch die.calendar
Methoden Datumsangaben mit verwendenmoment.updateLocale
. Der folgende Code ändert die.calendar
Anzeige gemäß der Frage:Basierend auf der Frage scheint die
.calendar
Methode angemessener zu sein -.fromNow
möchte ein Präfix / Suffix für Vergangenheit / Gegenwart haben, aber wenn Sie mehr erfahren möchten, können Sie die Dokumentation unter http://momentjs.com lesen / docs / # / customization / relative-time / .Um dies nur an einer Stelle zu verwenden, anstatt die Gebietsschemas zu überschreiben, übergeben Sie eine Zeichenfolge Ihrer Wahl als erstes Argument, wenn Sie das definieren,
moment.updateLocale
und rufen Sie dann die Kalendermethode mit diesem Gebietsschema auf (z. B.moment.updateLocale('yesterday-today').calendar( /* moment() or whatever */ )
).EDIT: Moment ^ 2.12.0 hat jetzt die
updateLocale
Methode.updateLocale
undlocale
scheinen funktional gleich zu sein undlocale
sind noch nicht veraltet, haben aber die Antwort aktualisiert, um die neuere Methode zu verwenden.quelle
Ich benutze eine Kombination von
add()
undendOf()
mit Momentquelle
Bedarf:
moment().fromNow()
."today"
,"yesterday"
,"tomorrow"
etc.Lösung:
Hinweis: Ab Version 2.14.0 kann das Formatargument für die Kalenderfunktion ein Rückruf sein, siehe http://momentjs.com/docs/#/displaying/calendar-time/ .
quelle
Sie können dies verwenden:
quelle
Ich habe eine ähnliche Lösung, erlaube aber die Verwendung von Gebietsschemas:
quelle
In Moment.js hat die from () -Methode die tägliche Genauigkeit, nach der Sie suchen:
quelle
from
hat nicht wirklich tägliche Präzision. Wenn beispielsweise gestern vor vier Stunden war und ich eine Zeit vor fünf Stunden auswähle, wird anstelle von gestern "vor 5 Stunden" angezeigt. Diese Lösung hat nichts mit der Genauigkeit zu tunfrom
, sondern mit den Daten, die übergeben wurden.Ab 2.10.5 unterstützt moment die Angabe von Kalenderausgabeformaten pro Aufruf. Eine ausführlichere Dokumentation finden Sie unter Moment - Kalender .
Ab 2.14.0 kann der Kalender auch einen Rückruf entgegennehmen, um Werte zurückzugeben.
quelle
Das habe ich also getan
quelle
Sie können die Methoden .add () und .subtract () verwenden, um das Datum von gestern und morgen abzurufen. Verwenden Sie dann die Formatierungsmethode, um nur das Datumsformat ("D / M / Y") abzurufen. D steht für Tag, M für Monat, Y für Jahr. Check in Moment Docs
Ergebnis wird sein:
quelle
So mache ich das mit moment :
quelle
quelle