2017-05-10 4 views
0

Ich habe als ISO-8601-String formatiert Datum: overview.startTime = "2017-05-09T08:00:00Z"Angular Datumsfilter: Format Monat als Ortszeit

Ich möchte diese auf meiner Seite angezeigt werden, und ich habe den folgenden Code verwendet:

Dagens arbetspass {{overview.startTime | date:'dd-MMM'}} 

Dies wird als "Dagens arbetspass 09-May" angezeigt. Mein Problem ist, dass dies eine schwedische Seite ist, und in Schweden starten wir die Monatsnamen nicht mit einem Großbuchstaben. Auch May wird "maj" geschrieben (j am Ende und nicht y). Ich habe versucht, die Zeitzone wie folgt

hinzuzufügen, aber das hat die Ausgabe nicht geändert. Tatsächlich werden die meisten Monate auf Schwedisch unterschiedlich geschrieben. Irgendwelche Vorschläge?

Antwort

1

Verwenden Sie einfach die Javascript "ToLocaleDateString" -Methode, um das Problem zu lösen. Die Methode benötigt zwei Argumente, die 'locale' und 'options' sind.

Gebietsschema wird "Sv-se" für Schwedisch sein.

Optionen liefern das Format für Ihre Zeichenfolge. Zum Beispiel - var options = { weekday: "long", year: "numeric", month:long",day:"numeric" };

var d = new Date("2017-05-09T08:00:00Z"); 
date.toLocaleDateString("sv-se", options) 

Hier ist ein Plunker https://plnkr.co/edit/G2IL5Zv0OAcVRMZS9HB7

+1

Perfect, danke! – BluePrint

+0

Kleiner Vorbehalt: Wenn ein Benutzer mit einem anderen Gebietsschema (sagen wir tschechisch) die Website besucht, werden schwedische Daten/Tag-Namen angezeigt. Die reguläre DatePipe von Angular verwendet "Intl" und berücksichtigt die Browser-/Betriebssystemeinstellungen des Benutzers. –