Ich möchte einige Daten relativ zum aktuellen Datum in einem benutzerfreundlichen Format anzeigen.
Beispiele für menschenfreundliche relative Daten:
- Vor 10 Sekunden
- In 20 Minuten
- Vor 1 Tag
- Vor 5 Wochen
- Vor 2 Monaten
Grundsätzlich die höchste Größenordnung treu bewahren (und vorzugsweise nur Einheiten verschieben, wenn 2 dieser Einheiten überschritten werden - 5 Wochen statt 1 Monat).
Obwohl ich mit einer Bibliothek leben könnte, die weniger Kontrolle und noch freundlichere Daten hatte wie:
- gestern
- Morgen
- letzte Woche
- vor ein paar Minuten
- in ein paar Stunden
Irgendwelche beliebten Bibliotheken dafür?
javascript
date
formatting
Rampion
quelle
quelle
Antworten:
Seit ich diese Antwort geschrieben habe, ist moment.js eine bekannte Bibliothek verfügbar .
Es sind Bibliotheken verfügbar , aber es ist trivial, diese selbst zu implementieren. Verwenden Sie einfach eine Handvoll Bedingungen.
Angenommen, es
date
handelt sich um ein instanziiertesDate
Objekt für die Zeit, mit der Sie einen Vergleich durchführen möchten.Sie müssten dies anpassen, um zukünftige Daten zu verarbeiten.
quelle
getTimeAgo
Funktion im Twitter-Stil zu erstellen. Gist.github.com/pomber/6195066a9258d1fb93bb59c206345b38Ich habe moment.js geschrieben , eine Datumsbibliothek , die dies tut. Es geht um
5 KB (2011)52 KB (2019) und funktioniert in Browsern und in Node. Es ist wahrscheinlich auch die beliebteste und bekannteste Datumsbibliothek für JavaScript.Es unterstützt Timeago, Formatieren, Parsen, Abfragen, Bearbeiten, i18n usw.
Timeago (relative Zeit) für Daten in der Vergangenheit ist erledigt mit
moment().fromNow()
. So zeigen Sie beispielsweise den 1. Januar 2019 im Timeago-Format an:Die Timeago-Zeichenfolgen können mit angepasst werden
moment.updateLocale()
, sodass Sie sie nach Belieben ändern können.Die Grenzwerte entsprechen nicht den Anforderungen der Frage ("5 Wochen" gegenüber "1 Monat"), es wird jedoch dokumentiert, welche Zeichenfolgen für welchen Zeitraum verwendet werden.
quelle
Hier ist etwas von John Resig - http://ejohn.org/blog/javascript-pretty-date/
BEARBEITEN (27.06.2014): Nach dem Kommentar von Sumurai8 - obwohl die verlinkte Seite immer noch funktioniert, ist hier der Auszug für den
pretty.js
verlinkten Artikel aus dem obigen Artikel:Pretty.js
Verwendung:
Auszug aus dem Artikel über die Verwendung:
Mit JavaScript:
Mit jQuery:
Faiz: Einige Änderungen am Originalcode, Fehlerbehebungen und Verbesserungen vorgenommen.
quelle
zucker.js hat großartige Datumsformatierungsfunktionen.
Darüber hinaus bietet es allgemeine Allzweckfunktionen wie Zeichenfolgenformatierung, Zahlenformatierung usw., die bequem zu verwenden sind.
quelle
hier ein Beispiel für Zucker gegen Moment: Für einen Kalender, der Wochen anzeigt, brauchte ich den letzten Montagwert:
moment.js
Zucker.js
Ich bevorzuge Zucker und nach einigen Monaten mit moment.js wechsle ich jetzt zu zucker.js. Es ist klarer und lässt sich gut in die Date-Klasse von Javascripts integrieren.
OP-Fälle werden von beiden Bibliotheken abgedeckt. Zucker.js finden Sie unter http://sugarjs.com/dates
quelle
Dieses JS-Skript ist sehr schön. Alles was Sie tun müssen, ist es auszuführen. Alle
<time>
Tags werden in relative Daten geändert und alle paar Minuten aktualisiert, sodass die relative Zeit immer auf dem neuesten Stand ist.http://timeago.yarp.com/
quelle
Klingt so, als könnten Sie http://www.datejs.com/ verwenden.
Sie haben ein Beispiel auf der Hauptseite, das genau das tut, was Sie beschreiben!
EDIT: Eigentlich denke ich, ich habe Ihre Frage in meinem Kopf umgekehrt. Auf jeden Fall könnte man es sich ansehen, da es sowieso eine wirklich großartige Bibliothek ist!
EDIT x2: Ich werde wiederholen, was die anderen gesagt haben. Http://momentjs.com/ ist wahrscheinlich die derzeit beste Wahl.
EDIT x3: Ich habe date.js seit über einem Jahr nicht mehr verwendet. Ich verwende momentjs ausschließlich für alle meine datumsbezogenen Anforderungen.
quelle