Javascript: Datum konvertieren

moonwalker99

Lt. Commander
Registriert
Jan. 2008
Beiträge
1.957
Es gibt viele Beispiel im Netz, die zeigen, wie man mit Javascript ein Datum erzeugt oder formatiert. Ich habe aber einen besonderen Fall. Ich möchte aus einem Datum mit deutschem Monatsnamen ein Datum mit Monatsnummern erzeugen.

Also aus: 1. April 2020 -> 2020-04-01

Jetzt suche ich nach einer einfachen Möglichkeit, dies umzusetzen, ohne dass ich für jeden Monat einzeln ein replace machen muss. Wer hat sowas schon gemacht?
 
Ich würde das eigentlich immer den Browser<->Ländereinstellungen überlassen. So bekommt jeder User "sein" Datumsformat. zb mit toLocaleDateString() https://developer.mozilla.org/en-US...erence/Global_Objects/Date/toLocaleDateString

für Y-m-d habe ich noch das hier gefunden: https://stackoverflow.com/a/63490548/1165121

Javascript:
new Date().toLocaleDateString('en-CA'), // 2020-08-19 (year-month-day) notice the different locale

Das bestehende Datum parsen wird schon schwieriger. Besser du hättest es im ISO Format oder Unix Timestamp vorliegen (zb als data-attribut)
Ansonsten must du nach einem passenden Parser suchen oder einen schreiben, wie beispielsweise hier:
https://stackoverflow.com/a/50782038/1165121

oder eine Lib verwenden wie Moments oder Datejs
 
Zuletzt bearbeitet:
moonwalker99 schrieb:
für jeden Monat einzeln ein replace machen
Das sollte man sowieso grundsätzlich nicht. Es gibt für jede Sprache entsprechende libraries die das parsen und formatieren von Daten übernehmen. Netzgestaltung hat ja ein Beispiel schon genannt.
 
Wie wäre es mit Luxon?

Javascript:
DateTime.fromFormat('01. April 2020', 'dd. MMMM yyyy').toFormat('yyyy-MM-dd')
 
  • Gefällt mir
Reaktionen: moonwalker99 und netzgestaltung
Zurück
Oben