Wie kann ich ein Datum mit dem Format JJJJ-MM-TT von einem ISO 8601- Datum erhalten?
Mein 8601 Datum ist
2013-03-10T02:00:00Z
Wie kann ich folgendes bekommen?
2013-03-10
javascript
date
neeraj
quelle
quelle
date.split("T")[0]
würde tunAntworten:
Versuche dies
Aktualisieren:-
Wie in den Kommentaren erwähnt, aktualisiere ich die Antwort, um bei Bedarf führende Nullen für Datum und Monat zu drucken.
quelle
Schneiden Sie einfach die Schnur:
Oder wenn Sie nur ein Datum außerhalb der Zeichenfolge benötigen.
quelle
YYYYY-MM-DD
beschädigt wird, da das Format im Jahr 10000 liegt. Um dies zu vermeiden, können Sie das aufteilenT
Zeichen stattdessen. (Siehe en.wikipedia.org/wiki/Year_10,000_problem )Sie könnten auschecken Moment.js , Luxon , date-fns oder Day.js für eine nette Datumsmanipulation auschecken .
Oder extrahieren Sie einfach den ersten Teil Ihrer ISO-Zeichenfolge, er enthält bereits das, was Sie möchten. Hier ist ein Beispiel durch Aufteilen auf die
T
:quelle
Moment.js übernimmt die Datumsformatierung für Sie. Hier erfahren Sie, wie Sie es über ein JavaScript-Tag einfügen und wie Sie mit Moment.js ein Datum formatieren.
quelle
moment
ist eine ziemlich große Bibliothek, die nur zum Formatieren verwendet werden kann. Verwenden Sie lieber date-fns, die viel kleiner sind und die gleiche Funktionalität bieten ..toISODateString()
, weil es sehr häufig vorkommt ...Dies ist, was ich tue, um nur Datum zu bekommen:
quelle
Moment.js ist eine ziemlich große Bibliothek, die für einen einzelnen Anwendungsfall verwendet werden kann. Ich empfehle
date-fns
stattdessen zu verwenden. Es bietet im Grunde die meisten Funktionen von Moment.js mit einer viel kleineren Bundle-Größe und vielenformatting options
.Da es sich um das ISO 8601- Zeitformat handelt, konvertiert der Browser im Allgemeinen von der UTC-Zeit in die lokale Zeitzone. Dies ist jedoch ein einfacher Anwendungsfall, in dem Sie dies wahrscheinlich tun können
'2013-03-10T02:00:00Z'.substring(0, 10);
.Für komplexere Konvertierungen
date-fns
ist der Weg zu gehen.quelle
Verwenden:
quelle
quelle
Dadurch wird das Datum im Format JJJJ-MM-TT ausgegeben:
quelle
Übergeben Sie Ihr Datum im Datumsobjekt:
quelle
Für alle, die Split-, Slice- und andere auf Zeichenfolgen basierende Versuche verwenden, um das Datum zu ermitteln, können Sie sich auf zeitzonenbezogene Fehler einstellen!
Ein ISO-String hat eine Zulu-Zeitzone und ein Datum gemäß dieser Zeitzone. Dies bedeutet, dass möglicherweise ein Datum einen Tag vor oder später vor der tatsächlichen Zeitzone verwendet wird, das Sie in Ihrer Transformationskette berücksichtigen müssen.
Siehe dieses Beispiel:
quelle
Wenn Sie ein Datumsobjekt haben:
oder
quelle
So erweitern Sie die Lösung von rk rk : Wenn das Format die Zeit enthalten soll, können Sie die
toTimeString()
zu Ihrer Zeichenfolge hinzufügen und dann den GMT-Teil wie folgt entfernen:quelle
Ich habe das benutzt:
Quelle: http://gooplus.fr/de/2017/07/13/angular2-typescript-isodate-to-html-date/
quelle
quelle
quelle
Eine bessere Version der Antwort von @Hozefa .
Wenn Sie
date-fns
installiert haben, können Sie die formatISO- Funktion verwendenquelle
Verwenden Sie den folgenden Code. Es ist nützlich für Sie.
quelle